gpt4 book ai didi

java - 使用来自用户的数据逐渐填充数组

转载 作者:行者123 更新时间:2023-11-30 11:58:57 26 4
gpt4 key购买 nike

我正在尝试用用户输入的单词填充一个数组。每个单词必须比前一个长一个字母,比下一个短一个字母。它们的长度等于表行索引,从 2 开始计算。单词最终会创建一个单边金字塔,例如:
一个
AB
美国广播公司
ABCD

Scanner sc = new Scanner(System.in);
System.out.println("Give the height of array: ");
height = sc.nextInt();
String[] words = new String[height];
for(int i=2; i<height+2; i++){
System.out.println("Give word with "+i+" letters.");
words[i-2] = sc.next();
while( words[i-2].length()>i-2 || words[i-2].length()<words[i-3].length() ){
words[i-2] = sc.next();
}
}

如何限制从扫描器读取的单词以满足要求?目前 while 循环根本不影响扫描器:/

这不是作业。我正在尝试创建一个简单的应用程序,然后为其创建 gui。

最佳答案

  • 你没有读过height来自 Scanner (值(value)是多少?)
  • 你确定你不能使用 List<String>和其他可动态增长的数据结构?
  • 如果不满足长度要求会怎样?
  • 为什么 2-2抵消?
    • 何时i = 2 ,您还可以访问 words[i-3] .这将抛出 ArrayIndexOutOfBoundsException

这里重写一下,让逻辑更清晰:

    Scanner sc = new Scanner(System.in);

System.out.println("Height?");
while (!sc.hasNextInt()) {
System.out.println("int, please!");
sc.next();
}
final int N = sc.nextInt();

String[] arr = new String[N];
for (int L = 1; L <= N; L++) {
String s;
do {
System.out.println("Length " + L + ", please!");
s = sc.next();
} while (s.length() != L);
arr[L - 1] = s;
}

for (String s : arr) {
System.out.println(s);
}

相关问题

关于java - 使用来自用户的数据逐渐填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com