0

スキャナーを使用して単語のリストをすべて 1 つの文字列に入力し、個々の単語をアルファベット順に並べるコードを作成しようとしています。私が得ているのは、文字でアルファベット順に並べられた最初の単語だけです。これを修正するにはどうすればよいですか?

コード:

else if(answer.equals("new"))
    {
      System.out.println("Enter words, separated by commas and spaces.");
      String input= scanner.next();
      char[] words= input.toCharArray(); 
      Arrays.sort(words);
      String sorted= new String(words);
      System.out.println(sorted);

    }

結果: " ああ"

4

2 に答える 2

0

文字列を介して読み取り、その文字列をscanner.next()文字に分割しています。つまり、あなたが言ったように、単一文字列をinput.toCharArray(). あなたがする必要があるのは、すべての単語を読み込んで、String []. すべての単語を追加したら、 を使用Arrays.sort(yourStringArray)して並べ替えます。次の質問に対する回答については、コメントを参照してください。

于 2013-05-20T01:54:17.833 に答える
0

文字列を文字ではなく単語に分割する必要があります。1 つのオプションは、を使用してString.splitいます。その後、これらの単語を結合して 1 つの文字列に戻すことができます。

System.out.println("Enter words, separated by commas and spaces.");
String input = scanner.nextLine();

String[] words = input.split(",| ");
Arrays.sort(words);

StringBuilder sb = new StringBuilder();
sb.append(words[0]);
for (int i = 1; i < words.length; i++) {
    sb.append(" ");
    sb.append(words[i]);
}
String sorted = sb.toString();

System.out.println(sorted);

デフォルトでは、大文字が小文字の前にソートされることに注意してください。それが問題である場合は、この質問を参照してください。

于 2013-05-20T02:00:38.377 に答える