Strengmønsterprogrammer i Java
I dette indlæg vil vi udvikle mange strengmønsterprogrammer i Java. For eksempel:- Halv pyramide-strengmønster, Halv-diamant-streng-mønster, spejlet halv-diamant-strengmønster og etc.
Strengmønsterprogrammer i Java – 1 | Skriv et Java-program for at udskrive nedenstående mønster. Løs dette problem ved hjælp af en indlejret løkke uden et array.
Enter a word: PHYSICS
P
H
Y
PHYSICS
I
C
S
I dette mønster er antallet af rækker lig med størrelsen af strengen. Derfor vil den ydre løkke iterere fra 0 til størrelse, antag at "størrelse"-variablen holder længden af strengen.
Når rækkenummer er lig med størrelse/2, så indeholder mønsteret hele ordet. I andre tilfælde indeholder den størrelse/2 mellemrum og så et tegn => word.carAt(rækkenummer-1). For eksempel:- i 1. række indeholder den 3 mellemrum og 'P', dvs. word.charAt(0).
Java-programmet til ovenstående strengmønster,
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
int size = word.length();
for (int i=0; i<size; i++) {
for (int j=0; j<=size/2; j++) {
if(i == size/2 ){
System.out.print(word);
break;
} else {
if(j == size/2)
System.out.print(word.charAt(i));
else
System.out.print(" "); // one space
}
}
System.out.println(); // new line
}
}
}
Eksempeloutput af ovenstående program:-
Enter a word: PROGRAM
P
R
O
PROGRAM
R
A
M
Halvpyramidestrengmønsterprogrammer i Java
Strengmønsterprogrammer i Java – 2 | Skriv et Java-program for at udskrive nedenstående halvpyramidestrengmønster i Java.
Indtast et ord:PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
Java-program til ovenstående mønster,
Dette mønster indeholder N tegn i N'te linje, dvs. i 1. linje indeholder det 1 tegn, 2. linje indeholder 2 tegn, og så videre. Vi kan antage det som en matrixrepræsentation, hvor linjer vil repræsentere af rækker og tegn vil blive repræsenteret af kolonner. Derfor indeholder 1. række 1 kolonne, 2. række indeholder 2 kolonner, og så videre.
Den indre løkke (kolonne) er afhængig af rækkenummeret. I 1. række skal der kun være 1 kolonne og kun 1 tegn skal vises. Gentag derfor den indre sløjfe indtil den aktuelle rækkeværdi. Efter udførelse af hver indre løkke print i den nye linje.
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
for (int i=0; i<word.length(); i++) {
for (int j=0; j<=i; j++) {
System.out.print(word.charAt(j));
}
System.out.println(); // new line
}
}
}
Halv Diamond String Pattern Programmer i Java
Strengmønsterprogrammer i Java – 3 | Skriv et Java-program for at udskrive nedenstående halve diamantstrengmønster i Java.
Indtast et ord:PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
PROGRA
PROGR
PROG
PRO
PR
P
Java-program til ovenstående halve diamantstrengmønster,
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
int size = word.length();
for (int i=0; i < (2*size-1); i++) {
int column = (i<size) ? i : (2*size-i-2);
for (int j=0; j<=column; j++) {
System.out.print(word.charAt(j));
}
System.out.println(); // new line
}
}
}
Strengmønsterprogrammer i Java – 4 | Skriv et Java-program for at udskrive nedenstående mønster.
Indtast et ord:PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
ARGORP
RGORP
GORP
ORP
RP
P
Java-program til ovenstående halve diamantstrengmønster,
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
int size = word.length();
for (int i=0; i < (2*size-1); i++) {
if(i<size){
for (int j=0; j<=i; j++) {
System.out.print(word.charAt(j));
}
} else{
for (int j=(2*size-i-2); j>=0; j--) {
System.out.print(word.charAt(j));
}
}
System.out.println(); // new line
}
}
}
Strengmønsterprogrammer i Java – 5 | Skriv et Java-program for at udskrive nedenstående halve diamantstrengmønster i Java.
Indtast et ord:PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
ROGRAM
OGRAM
GRAM
RAM
AM
M
Java-program til ovenstående halve diamantstrengmønster,
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
int size = word.length();
for (int i=0; i < (2*size-1); i++) {
if(i < size){
for (int j=0; j<=i; j++) {
System.out.print(word.charAt(j));
}
} else{
for (int j=(i-size+1); j<size; j++) {
System.out.print(word.charAt(j));
}
}
System.out.println(); // new line
}
}
}
Spejlet Half Diamond String Pattern i Java
Strengmønsterprogrammer i Java – 6 | Skriv et Java-program for at udskrive nedenstående spejlede halve diamantstrengmønster i Java.
Enter a word: PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
ROGRAM
OGRAM
GRAM
RAM
AM
M
Java-program til ovenstående spejlede halve diamantstrengmønster,
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
int len = word.length();
// for first half
for(int i=0; i<len-1; i++) {
for(int j=0; j<len-i-1; j++) {
System.out.print(" "); // space
}
for(int j=0; j<=i; j++) {
System.out.print(word.charAt(j)); // character
}
System.out.println(); // new line
}
// for second half
for(int i=0; i<len; i++) {
for(int j=0; j<i; j++) {
System.out.print(" "); // space
}
for(int j=i; j<len; j++) {
System.out.print(word.charAt(j)); // character
}
System.out.println(); // new line
}
}
}
Pyramidestrengmønsterprogrammer i Java
Strengmønsterprogrammer i Java – 7 | Skriv et Java-program for at udskrive nedenstående pyramidestrengmønster i Java.
Enter a word: PROGRAM
Enter number of lines: 6
P
R O
G R A
M P R O
G R A M P
R O G R A M
P R O G R A M
Java-program til ovenstående pyramidestrengmønster,
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scan.nextLine();
System.out.print("Enter number of lines: ");
int n = scan.nextInt();
int len = word.length();
int a = 0;
for(int i=0; i<=n; i++) {
// for space
for (int j=0; j<=n-i; j++) {
System.out.print(" "); // print space
}
for(int k=0; k<=i; k++) {
// print character
System.out.print(word.charAt(a)+" ");
a++;
// if index reach end of string then again
// it should start from initial characters
if(a == len) a = 0;
}
System.out.println(); // new line
}
}
}
I dette program tages antallet af rækker og strenge fra brugeren. Antallet af kolonner i hver er lig med rækkenummeret. Så først giver vi plads, hvor plads er (total række – nuværende række). Vi har taget en separat variabel "a" for at holde styr på strengens indeks. I mønsteret, når strengen nåede enden, starter visningen igen fra begyndelsen af strengen. For eksempel i ordet "PROGRAM", når mønsteret nåede tegnet "M", så starter det igen fra tegnet "A".
Lignende mønsterprogrammer i Java,
- Diamond Pattern Program
- Pascal Triangle Program
- Pyramidemønsterprogram