gpt4 book ai didi

Java:查找字符串中最短的单词并将其打印出来

转载 作者:行者123 更新时间:2023-12-04 10:57:35 25 4
gpt4 key购买 nike

我是 Java 新手。我上了一门 C 语言的课,所以我试图让自己摆脱那种思维模式。我正在编写的程序有一个部分,用户在其中输入一个整数 n,然后输入 n 个单词。该部分然后搜索这些词并找到最短的词,然后将其返回给用户。例如,输入可能是:

INPUT: 4 JAVA PROGRAMMING IS FUN

OUTPUT: IS

我目前的代码似乎返回了错误的词。在这种情况下,它返回“PROGRAMMING”,而它应该返回“IS”。我想也许你们都能为我指明正确的方向。

int numwords = scan.nextInt();
String sentence = scan.nextLine();
String shortestword = new String();
String[] words = sentence.split(" ");
for (int i = 0; i < numwords; i++){
if (shortestword.length() < words[i].length()){
shortestword = words[i];

}
}
System.out.printf(shortestword);

为了让您了解我正在尝试做什么,我尝试将单词输入字符串“sentence”,然后将该字符串分解为数组“words[]”中的单个单词,然后运行 for 循环,通过将长度与数组中的条目进行比较来将字符串相互比较。感谢您的协助!

最佳答案

您快完成了,但是您检测最短单词的比较是相反的。应该是:

if (words[i].length() < shortestword.length()) {

也就是说,如果您当前单词的长度小于您之前最短单词的长度,则覆盖它。

此外,不要以空的 String 开头,而是以第一个 单词开头,即 words[0]。否则,空字符串将始终比数组中的任何字符串都短:

String[] words = sentence.split(" ");
String shortestword = words[0];
for (int i = 1; i < numwords; i++) { // start with 1, because you already have words[0]

关于Java:查找字符串中最短的单词并将其打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326899/

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