1

アプリケーションに問題があります。ユーザーが文字列に値を入力しない場合 (つまり、何かを入力するように求められた後に Enter キーを押すだけ)、アプリがプログラムを終了するかどうかを尋ねます。
私はそれを正しくやっていますか?

words = s.nextLine();   
if (words.equals(null)) {
4

5 に答える 5

7

いいえ、あなたはそれを正しくしていません。

nextLine()ユーザーが単にreturn を押すと、空の文字列が返されます。私が知る限り、それは二度と戻りませんnull。入力の終わりに達した場合は、スローします (その場合に null返すのとNoSuchElementExceptionは異なります)。あなたが望んでいるのは:BufferedReader.readLine()

if (words.equals(""))

また

if (words.length() == 0)

また

if (words.isEmpty())

...そして、hasNextLine()最初に入力の終わりを検出したい場合に使用します。

于 2012-11-27T11:19:21.993 に答える
5

いいえ、そうではありません。

ユーザーが単純に Enter キーを押すと、 ではなく空の文字列が返されますnull。これは次のように確認できます。

if(words.equals(""))

空白がある場合、これは失敗します。その場合

if(words.trim().equals(""))

動作するはずです。

于 2012-11-27T11:21:17.837 に答える
4

取得するのは空の文字列であるため、null は正しくありません。

使用: words.isEmpty() または words.equals("") または words.length()==0

于 2012-11-27T11:21:09.330 に答える
0

これはうまくいくはずです:

if (words == null || words.length() == 0) {
于 2012-11-27T11:19:13.430 に答える
0

返された文字列は null ではなく、単なる空の文字列です。

words.equals("");

正しいはずです

于 2012-11-27T11:23:44.610 に答える