1

ユーザーが入力した文字列で最小の単語を見つけようとしています。これは私がこれまでに持っているものです:

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が、文字列の最初の単語が表示されるだけです。何か案は?

4

2 に答える 2

5

あなたのアルゴリズムは問題ありませんが、使用する代わりにnext():

String myText = sc.next();

単一のトークン、つまり最初の単語 useのみを読み取り、行全体nextLine()を読み取ります。

String myText = sc.nextLine();
于 2012-09-08T02:32:03.670 に答える
0

完全な文字列を取得するには、メソッドを使用する必要があります

sc.nextLine();

したがって、完全な文字列を取ります。

于 2012-09-08T14:38:44.953 に答える