0

while ループに問題があります。ユーザーがフレーズに空白を入力すると、空白以外のフレーズを入力するようにというステートメントが表示されることを除いて、すべてが機能するようになりました。そして、これはユーザーがフレーズを入力するまでループする必要がありますが、うまく機能しないようです。

これはコードです:

System.out.print("Enter a phrase to search the above text for: ");
phrase = kb.nextLine();

while (phrase.equals(""))
{
    System.out.print("Please enter a non-blank phrase: ");
    phrase = kb.next();
}
4

2 に答える 2

1

while ループ内では、 を使用しています。これは、空白の入力が与えられたときにphrase = kb.next();を読み取ります。空白の入力から改行を無視するためにnewline使用できます。kb.nextLine();

        while (phrase.equals(""))
        {
            System.out.print("Please enter a non-blank phrase: ");
            phrase = kb.nextLine();
        }

またはtrim、末尾を削除するためにnewline使用できるので、次を使用しますwhile (phrase.trim().equals("")): -

       while (phrase.trim().equals(""))
        {
            System.out.print("Please enter a non-blank phrase: ");
            phrase = kb.next();
        }
于 2012-10-20T20:01:16.580 に答える
0

トリムで試してください:

            while (phrase.trim().equals(""))
            {
                System.out.print("Please enter a non-blank phrase: ");
                phrase = kb.next();
            }
于 2012-10-20T20:01:18.137 に答える