我试图在用户输入的字符串中找到最小的单词。这是我到目前为止的内容:

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();

09-30 15:28