私のJavaの宿題では、文字列内の最初の単語を返すスクリプトを作成する必要があります。また、2番目の単語として2番目の単語も返す必要があります。私は現在、最初の部分で作業しています。私は近いと思いますが、私のコードを少し複雑にしているかどうかも疑問です。Javaで単純なソリューションを複雑にしていますか?
public static void statements(){
Scanner userInput = new Scanner(System.in);
char [] sentenceArray;
String userSentence;
char sentenceResult;
System.out.print("Enter a complete sentence: ");
userSentence = userInput.nextLine();
for(int x = 0; x < userSentence.length(); x++){
sentenceResult = userSentence.charAt(x);
sentenceArray = new char[userSentence.length()];
sentenceArray[x] = sentenceResult;
if(sentenceArray[x] != ' '){
System.out.print(sentenceArray[x]);
//break; This stops the code at the first letter due to != ' '
}
}
}
私はほとんどそれを得たと思う。私が作業をする必要があるのは、スペースがあることを認識したらforループが終了するだけですが、メッセージ全体に関係なくそれが表示されます。私はこれがもっと簡単にできるだけでなく、おそらく私が代わりにやり遂げることができることのヒント、あるいは仕上げの仕方のヒントかも知れません。
編集:splitメソッドを使用して割り当てを完了することができました。これは現在の外観です
public static void statements(){
Scanner userInput = new Scanner(System.in);
String userSentence;
System.out.print("Enter a complete sentence: ");
userSentence = userInput.nextLine();
String [] sentenceArray = userSentence.split(" ");
System.out.println(sentenceArray[0]);
System.out.println(sentenceArray[1]);
}
}
'Scanner.nextを()'は使用しない理由:
ここで私が得る結果ですか? – shmosel
スキャナはこれに最も適しています。コンストラクタに文字列を渡すだけで、次に読むことができます。次の最良のオプションは、入力を空白 '\ s +'で分割することです。 – Tezra
要件が何であるかは不明ですが、ライブラリ関数を使用できる場合はhttps://stackoverflow.com/a/7683463/1566187 – Elyasin