我试图在用户输入的字符串中找到最小的单词。这是我到目前为止的内容:
import java.util.*;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String myText = sc.next();
String[] myWords = myText.split(" ");
int shortestLength,shortestLocation;
shortestLength=(myWords[0]).length();
shortestLocation=0;
for (int i=1;i<myWords.length;i++) {
if ((myWords[i]).length() < shortestLength) {
shortestLength=(myWords[i]).length();
shortestLocation=i;
}
}
System.out.println(myWords[shortestLocation]);
}
如果输入
"SMALLEST WORD SHOULD BE A"
,则输出应为A
,但这只是给我字符串的第一个单词。有任何想法吗? 最佳答案
您的算法很好,但是不使用next()
:
String myText = sc.next();
使用
nextLine()
只会读取单个令牌(即第一个单词),它将读取整行:String myText = sc.nextLine();