如何在 Java 中格式化这些嵌套循环?

How do I format these nested loops in Java?

The Goal

您好!我正在尝试学习如何在学校的 AP 计算机科学中使用嵌套 for 循环,但我在这个实验室遇到了麻烦:/我在获得正确结果方面取得了一些进展。但是,我在路上遇到了问题。上图显示了我需要做什么。

示例数据:

C 4

A 5

Sample Output:

CCCC DDD EE F

CCCC DDD EE

CCCC DDD

CCCC


AAAAA BBBB CCC DD E

AAAAA BBBB CCC DD

AAAAA BBBB CCC

AAAAA BBBB

AAAAA

上面还有我需要的I/O

目前我写的代码如下:

import java.util.Scanner;

public class LettersAndNumbers {
    public static void main(String args []) {
    int times;
    String character;//I know this sounds stupid
    Scanner scan = new Scanner(System.in);
    System.out.print("Enter a character and integer");
    character = scan.nextLine();
    times = scan.nextInt();

    String output ="";
    for(int i=times; i>=0;i--) {
        for(int j=i;j>=1;j--){
            for(int x = j; x>=1; x--)
            {
                output=output + character;


            }
            output=output+" ";

        }           
        output=output +'\n';
        int charValue = character.charAt(0);
        character = String.valueOf( (char) (charValue + 1));    
    }
    System.out.println(output);
  }
}

它产生以下输出(我快接近了):

输入一个字符和整数C

4

CCCC CCC CC C

DDD DD D

EE E

F

非常感谢您提供的任何帮助!

对于扫描器,我会使用 useDelimiter("\s")(意思是按空格拆分)和 next() 来获取字符串的字符和 int。我会把这个留给你自己弄清楚。 对于它的循环部分。假设你有一个起始字符和时间。您可以打印

for(int i = times; i > 0; i--){
    for(int j = 0; j < i; j++){
         int numRepeats = i - j;
         String output = "";
         String repeatedCharacter = String.valueOf(startingCharacter + j);
         for(int k = 0; k < numRepeats; k++){
             output += repeatedCharacter;
         }
         System.out.print(output + " ");
    }
     System.out.println("");
}

工作解决方案:

Scanner scanner = new Scanner(System.in);
    String userInputChar=scanner.next();
    char userChar=userInputChar.charAt(0);      
    int userInputDigit=scanner.nextInt();       
    for(int i=1;i<=userInputDigit;i++){
        char charProcess=userChar;          
        for(int j=(userInputDigit-i)+1,l=userInputDigit;j>=1;j--,l--){              
            for(int k=l;k>=1;k--){
                System.out.print(charProcess);
            }
            charProcess=(char) (charProcess+1);
            System.out.print(" ");              
        }
        System.out.print("\n");
    }
    scanner.close();

让我知道进展如何。祝你好运。

好的,这里有两个提示:

1) character = String.valueOf( (char) (charValue + 1)); 也许看看这个声明是否有更好的地方?

2) 也许你可以为变量 'character' 使用字符串以外的东西...

祝你好运!