我正在尝试在用户输入的字符串中找到最小的单词。这就是我到目前为止所做的:
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
,但它只是给我字符串的第一个字。有什么想法吗?
答案 0 :(得分:5)
您的算法很好,但不是使用next()
:
String myText = sc.next();
只读取一个令牌,即第一个字,使用nextLine()
,它将读取整个行:
String myText = sc.nextLine();
答案 1 :(得分:0)
要获取完整的字符串,您必须使用方法
sc.nextLine();
因此它将采用完整的字符串。