gpt4 book ai didi

java - Java中的基本数组问题

转载 作者:行者123 更新时间:2023-12-01 19:02:23 24 4
gpt4 key购买 nike

寻求有关基本数组问题的帮助。程序必须读取一个句子并将单词长度的频率存储在数组中,然后打印出有多少个单词是 1 个字母的单词、2 个字母的单词等。

我是一个非常原始的java程序员,但是在下面做了一些尝试,我将非常感谢一些指导。我所拥有的似乎可以编译,但当我运行程序并输入句子时,会吐出一些乱码的十六进制。

当我在程序中输入一个句子时,我会得到如下的输出:

[I@eb42cbf
[I@eb42cbf
[I@eb42cbf
[I@eb42cbf
[I@eb42cbf
[I@eb42cbf

我的代码:

class WordCount
{
public static void main(String[] args)
{
int wordList[] = new int[20];
System.out.println("Please enter a sentence.");

for (int i = 0; i <= wordList.length; i++)
{
String s = Console.readToken();
int x = s.length();
wordList[x]++;
}

int x = 1;

while (x < wordList.length)
{
if (wordList[x] > 0)
System.out.println(x + "-letter words: " + wordList[x]);
x++;
}
}
}

最佳答案

以下是我的建议:

  • 使用Scanner而不是 Console.readToken,它不是标准 JDK 的一部分
  • 使用标准变量名称(i 代表计数器比 x 更好)
  • 其余代码运行良好
  • 但我会使用 for 循环而不是 while,因为你知道需要循环多少次

这是我的版本 - 更改是:使用扫描仪,将 x 重命名为 i 并将 while 循环更改为 for 循环:

public static void main(String[] args) {
int wordList[] = new int[20];
System.out.println("Please enter a sentence.");
Scanner scanner = new Scanner(System.in); //Use a scanner, part of the standard JDK

for (int i = 0; i <= wordList.length; i++) {
String s = scanner.next(); //reads the next string
int length = s.length();
wordList[length]++;
}

for (int i = 0; i < wordList.length; i++) { //use a for loop
if (wordList[i] > 0) {
System.out.println(i + "-letter words: " + wordList[i]);
}
}
}

关于java - Java中的基本数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11738060/

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