Java学習ノート——Scanner類の使い方


Scannerクラス
Scannerクラスでユーザーのキーボード入力を取得できます.Scannerを使用してユーザーのキーボード入力を取得するScannerクラスでは、主に2つの方法で入力をスキャンできます.
  • hasNextXx():次の入力項目があるかどうか、XxxはInt、Longなどの基本データ型を表す文字列、例えばhasNextInt()であってもよく、このとき複数の数字を入力して非数字で入力を終了することができる.次の文字列が含まれているか否かのみを判断する場合はhasNext()
  • をそのまま使用する.
  • nextXxx():次の入力を取得します.Xxxの意味は同
  • デフォルトでは、Scannerは複数の入力項目の区切り文字として空白(スペース、Tab、リターン)を使用します.
    import java.util.Scanner;
    
    public class test {
         
        public static void main(String[] args) {
         
            Scanner s = new Scanner(System.in);
            while (s.hasNext()){
         
                System.out.println("      :"+s.next());
            }
        }
    
    //   :  
    //   :      :  
    //   :   
    //   :      : 
    //   :      : 
    
    Scanner.useDelimiter()メソッドを使用すると、入力のデフォルトの空白の区切り操作を変更できます.
    import java.util.Scanner;
    
    public class test {
         
        public static void main(String[] args) {
         
            Scanner s = new Scanner(System.in);
            //           
            s.useDelimiter("
    "
    ); while (s.hasNext()){ System.out.println(" :"+s.next()); } } // : // : : // :i love java // : :i love java
    hasNextInt()を使用して、整数を入力して平均値を求める操作を行います.
    import java.util.Scanner;
    //    ,            
    public class test {
         
        public static void main(String[] args) {
         
            Scanner s = new Scanner(System.in);
            int sum=0;//  
            int count=0;//      
            while (s.hasNextInt()){
         
                sum+=s.nextInt();
                count+=1;
            }
            System.out.println(" :"+sum+"   :"+count+"    :"+sum/count);
        }
    }
    
    //   :5 5 8 #
    //   : :18   :3    :6
    
    行単位の読み込み方法
  • boolean hasNextLine():入力元に次の行があるかどうかを判断する
  • .
  • String nextLine():入力元の次の行の文字列を返し、リターンを終端とし、空白ではない
  • を区切ります.
    import java.util.Scanner;
    
    public class test {
         
        public static void main(String[] args) {
         
            Scanner s = new Scanner(System.in);
            //    useDelimite()
            while (s.hasNextLine()){
         
                System.out.println("      :"+s.nextLine());
            }
        }
    }
    //   :i love java
    //   :      :i love java
    
    以上の結果から,hasNextLine()は1行の内容を読み出していることがわかる.