【发布时间】:2019-12-13 15:29:11
【问题描述】:
我需要编写一个程序来找出给定字符串 str 中最短的单词。我的意见是;
橄榄、鱼、追逐、警告、老、蟒、爪哇、咖啡、猫、鳐
伏特、橄榄、鱼、紧追、警告、蟒蛇、爪哇、咖啡、部分
当我输入“橄榄、鱼、追逐、警告、旧、python、java、咖啡、猫、射线”的第一次迭代时,它给了我 [cat, old, ray]
但是当我输入第二次迭代“伏特,橄榄,鱼,紧追,警告,python,java,coffee,part”时,它给了我“coffee and python”,而需要输出[fish,java,part , 伏特] ?????
你觉得跟 Arrays.sort 有关系吗???
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
String[] words = str.split(", ");
Arrays.sort(words);
String shortest = words[0];
String count = "";
for (int i = 0; i < words.length ; i++) {
if(shortest.length() <= words[i].length() && words[i].length() == shortest.length()){
shortest = words[i];
count += shortest+", ";
}
}
if(count.length() > 0){
count = count.replaceAll(", $", "");
System.out.print("["+count+"]");
}
}
}
【问题讨论】:
-
嗨,欢迎来到 stackoveflow。你的问题到底是什么?
-
您好,我需要在给定输入的数组中找到所有最短的单词。谢谢!
-
你能解释一下你当前的代码有什么问题吗?
-
正如 Nicolas 所说,您具体面临的问题是什么?您当前的输出是什么,预期的输出是什么?
-
当我输入第一次迭代“橄榄,鱼,追求,警告,老,蟒蛇,java,咖啡,猫,雷”时,它给了我[猫,老,雷]但是当我输入第二次迭代是“伏特,橄榄,鱼,紧追,警告,python,java,coffee,part”它给了我咖啡和python,而需要输出[fish,java,part,volt]