在 Java 中写 rhombus/diamond 字形
Writing a word in a rhombus/diamond shape in Java
我必须编写一个程序,询问一个单词,然后将其打印成 rhombus/diamond 形状,如下所示:
Word: Hello
H
He
Hel
Hell
Hello
ello
llo
lo
o
我尝试了一些方法,但如果有人可以的话,我真的需要一些帮助,我尝试了这样的方法:
import java.util.Scanner;
public class Rhombus {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Word: ");
String word = sc.nextLine();
int wordLength = word.length();
for (int i = 0; i < wordLength; i++) {
System.out.println(word.substring(0, i));
}
}
}
给你:
public static void main(String[] args) {
printRhombusText("yolobird");
}
public static void printRhombusText(String s) {
// top part
for (int i = 1; i <= s.length(); ++i) {
System.out.println(s.substring(0, i));
}
// bottom part
for (int i = 1; i <= s.length(); ++i) {
// print out the space
for (int y = i; y > 0; --y) {
System.out.print(" ");
}
System.out.println(s.substring(i));
}
}
输出:
y
yo
yol
yolo
yolob
yolobi
yolobir
yolobird
olobird
lobird
obird
bird
ird
rd
d
想要添加用户输入?这里:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
do {
System.out.print("Input your text: ");
String input = scanner.nextLine();
printRhombusText(input);
scanner.reset();
System.out.print("You want to do one more? (y/n): ");
} while (scanner.nextLine().trim().equals("y"));
}
输出:
Input your text: kiet
k
ki
kie
kiet
iet
et
t
You want to do one more? (y/n): y
Input your text: ahihi
a
ah
ahi
ahih
ahihi
hihi
ihi
hi
i
You want to do one more? (y/n): n
您可以使用此代码以菱形输出单词。
public static void main(String[] args) {
String str = "RhOmBuS";
int h = str.length();
// two parts: negative and positive, i.e.
// upper increasing and lower decreasing
for (int i = 1 - h; i < h; i++) {
// white space padding for the positive part
for (int j = 0; j < i; j++) System.out.print(" ");
// negative part: str.substring(0, h + i);
// positive part: str.substring(i, h);
String sub = str.substring(Math.max(0, i), Math.min(h, h + i));
// output the line
System.out.println(sub);
}
}
输出:
R
Rh
RhO
RhOm
RhOmB
RhOmBu
RhOmBuS
hOmBuS
OmBuS
mBuS
BuS
uS
S
另请参阅:
我必须编写一个程序,询问一个单词,然后将其打印成 rhombus/diamond 形状,如下所示:
Word: Hello
H
He
Hel
Hell
Hello
ello
llo
lo
o
我尝试了一些方法,但如果有人可以的话,我真的需要一些帮助,我尝试了这样的方法:
import java.util.Scanner;
public class Rhombus {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Word: ");
String word = sc.nextLine();
int wordLength = word.length();
for (int i = 0; i < wordLength; i++) {
System.out.println(word.substring(0, i));
}
}
}
给你:
public static void main(String[] args) {
printRhombusText("yolobird");
}
public static void printRhombusText(String s) {
// top part
for (int i = 1; i <= s.length(); ++i) {
System.out.println(s.substring(0, i));
}
// bottom part
for (int i = 1; i <= s.length(); ++i) {
// print out the space
for (int y = i; y > 0; --y) {
System.out.print(" ");
}
System.out.println(s.substring(i));
}
}
输出:
y
yo
yol
yolo
yolob
yolobi
yolobir
yolobird
olobird
lobird
obird
bird
ird
rd
d
想要添加用户输入?这里:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
do {
System.out.print("Input your text: ");
String input = scanner.nextLine();
printRhombusText(input);
scanner.reset();
System.out.print("You want to do one more? (y/n): ");
} while (scanner.nextLine().trim().equals("y"));
}
输出:
Input your text: kiet
k
ki
kie
kiet
iet
et
t
You want to do one more? (y/n): y
Input your text: ahihi
a
ah
ahi
ahih
ahihi
hihi
ihi
hi
i
You want to do one more? (y/n): n
您可以使用此代码以菱形输出单词。
public static void main(String[] args) {
String str = "RhOmBuS";
int h = str.length();
// two parts: negative and positive, i.e.
// upper increasing and lower decreasing
for (int i = 1 - h; i < h; i++) {
// white space padding for the positive part
for (int j = 0; j < i; j++) System.out.print(" ");
// negative part: str.substring(0, h + i);
// positive part: str.substring(i, h);
String sub = str.substring(Math.max(0, i), Math.min(h, h + i));
// output the line
System.out.println(sub);
}
}
输出:
R
Rh
RhO
RhOm
RhOmB
RhOmBu
RhOmBuS
hOmBuS
OmBuS
mBuS
BuS
uS
S
另请参阅: