簡體   English   中英

用 Java 寫一個菱形/菱形的單詞

[英]Writing a word in a rhombus/diamond shape in Java

我必須編寫一個程序,詢問一個單詞,然后將其打印為菱形/菱形,如下所示:

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

另請參閱:根據用戶輸入打印菱形圖案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM