在 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

您可以使用此代码以菱形输出单词。

Try it online!

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

另请参阅: