在Java中查找字符串中的最小单词

时间:2012-09-08 02:29:04

标签: java string

我正在尝试在用户输入的字符串中找到最小的单词。这就是我到目前为止所做的:

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,但它只是给我字符串的第一个字。有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您的算法很好,但不是使用next()

String myText = sc.next();

只读取一个令牌,即第一个字,使用nextLine(),它将读取整个行:

String myText = sc.nextLine();

答案 1 :(得分:0)

要获取完整的字符串,您必须使用方法

sc.nextLine();

因此它将采用完整的字符串。