2016-05-26 5 views
-1

Scannerクラスについて、私はあまり得意ではないようなことを聞​​きたいと思います。Java:Scanner class

hasNextInt()などのScannerメソッドを使用する場合、入力を取る前にこれをチェックするのはなぜですか?ここに例があります:

import java.util.Scanner; 
public class ScannerClass{ 
     public static void main(String[] args){ 

      Scanner scan = new Scanner(System.in); 
      System.out.print("Type a string: "); 
      if(scan.hasNextInt()) 
       System.out.println("A string is required"); 
      String string = scan.nextLine(); 
     } 
} 

これはどのように機能しますか?

+2

「javadoc for hasNextInt'」(https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#hasNextInt%28%29)とは何ですか? –

+0

ユーザーがこのユーザーの質問に投票することは妥当ではありません... Scannerクラスには多くの質問があります。単にユーザーを助けてみませんか?誰もが専門家ではありません。 –

+0

@AlvinBunkダウンボートは次のように示しています。 "この質問は**研究努力**を示していません;それは不明確または有用ではありません。 – tnw

答えて

0

提供したサンプルコードでは、 "hasNextInt()"を確認していますが、プロンプトで "文字列"を尋ねました。代わりに、キャリッジリターンが入力されたことを確認する "hasNextLine()"があるかどうかを確認する必要があります。

"hasNextString()"メソッドはありませんが、 "hasNext(String pattern)"を使用して特定のパターンをチェックできます。

私はさらにAPI docsを読んで、それらに精通していることをお勧めします。 Java 1.8を使用しているのかどうかは分かりませんが、最新のものです。これがあなたを助けることを願ってください。そうでない場合は、さらに質問してください。