2011-11-02 11 views
0

私は初心者のJavaコードを書いています。私はまだループについては読んでいない。私はif-else文までです。私のコードは、文章を入力するとき以外は、最初の単語だけが認識されます。スペースを入れずに文章を入力すると完璧に動作します。文全体を見るためにコードを取得するにはどうすればよいですか?ありがとう!Javaで見られる文の最初の単語だけ

import java.util.Scanner; 

public class Program04 
{ 
    public static void main(String[] args) 
    { 
     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Write a complete sentence with proper grammer:"); 
     String sentence = keyboard.next(); 
     boolean qMark = sentence.contains("?"); 
     boolean wow = sentence.contains("!"); 
     if (qMark) 
      System.out.println("Yes"); 
     else if (wow) 
      System.out.println("Wow"); 
     else 
      System.out.println("You always say that."); 
    } 
} 

答えて

2

APIを見て、nextLine()について特に一部を持っています。

+0

ありがとうございます。私はそれを試みたが、私が必要とした答えを明確に述べていなかった。あなたは、APIを見ているときに既に答えを知る必要があります。 – user1026422

+0

には研究要素があります。あなたが 'nextLine'を見て、あなたがそのテキストを読んでいれば、それは明らかです。しかし、私は時々どこを見るかを知ることは難しいとあなたに同意します。 – hvgotcodes

3

使用

keyboard.nextLine(); 

代わりに

keyboard.next(); 
+0

ありがとうございました!出来た。 – user1026422

0

Scanner.next()は、デフォルトで、ただ一つの単語(空白区切り)であり、次のトークンを返します。文全体が必要な場合は、区切り記号を '\ n'に変更することができます:keyboard.setDelimiter("\n");、またはループを学習して文全体をループすることができます。

編集: または他の人が指摘しているように、nextLine()。なぜなら、Macは '\ r'を使用しているからです。これは私が言ったことで捕らえられないからです。

+0

ありがとうございます。私はこれを念頭に置いておきます。 – user1026422

関連する問題