Java コンソールから文字列を入力する(Scannerクラス)

Javaのコンソールから文字列を入力するサンプルです。

確認環境
・Java 8
・Eclipse 4.8
・Windows 10

目次

コンソールから文字列を入力する

コンソールから文字列を入力するサンプルです。
Scannerクラスを使用します。

package test1;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        
        System.out.println("入力してください。");

        Scanner sc1 = new Scanner(System.in);
        String line1 = sc1.nextLine();
        
        System.out.println("入力した文字は=" + line1);
    }
}

9行目は、Scannerクラスを使用しています。
10行目は、nextLineメソッドで入力した文字列を取得しています。

コンソールからの入力イメージ

上記コードを実行した時のコンソールからの入力イメージです。

1.ユーザー入力の受付待ちになります。

2.文字を入力してエンターキーを押します。

3.結果が表示されます。

 

複数の行を入力する

複数の行を入力するサンプルです。

package test1;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        
        System.out.println("入力してください。");

        Scanner sc1 = new Scanner(System.in);
        String line1 = sc1.nextLine();
        String line2 = sc1.nextLine();
        int line3 = sc1.nextInt();
        
        System.out.println("入力した文字は=" + line1);
        System.out.println("入力した文字は=" + line2);
        System.out.println("入力した数値は=" + line3);
    }
}

10~12行目のようにnextLineメソッドを続けると、複数の行を入力できます。
12行目のnextIntメソッドは、int型の数値として取得します

入力イメージ

上記コードを実行したイメージです。

 

複数の行を入力する(ループを使用)

ループを使用して複数の行を入力するサンプルです。

package test1;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        
        System.out.println("入力してください。");
        String line1;
        
        Scanner sc1 = new Scanner(System.in);
        while(sc1.hasNext()){
        	line1 = sc1.next();
        	System.out.println("入力した文字は=" + line1);
        }
    }
}

11行目は、whileとhasNextメソッドでループにしています。
ループから抜ける場合は、Ctrl + Zを押します。(Windows)
または、if文の判定とbreakで抜ける処理を追加します。

入力イメージ

上記コードを実行したイメージです。
※Eclipse4.8では、ループが終了した場合は左上に「終了」と表示されます。

 

InputStreamReaderとBufferedReaderを使用する

InputStreamReaderとBufferedReaderを使用するサンプルです。
コンソールから文字列を入力し、その文字列を表示します。

package test1;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test1 {
    public static void main(String[] args) {
        
    	String moji;
        System.out.println("入力してください。");
        
        try(InputStreamReader is = new InputStreamReader(System.in);
        	BufferedReader reader = new BufferedReader(is);){
            moji = reader.readLine();
            System.out.println("入力した文字は=" + moji);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

13,14行目は、try-with-resources構文です。リソースを自動でクローズします。
13行目に、System.inがあります。

Oracle Java8の公式リンク

関連の記事

Java リソースを自動でクローズする(try-with-resources文)
Java テキストファイルの読み書きのサンプル(Filesクラス)
Java バイナリファイルの読み込みと書き込み
Java ファイルの読み込みと書き込み(バッファを使用するクラス)
Java ファイルの読み込みと書き込み(文字コードを指定するクラス)
Java フォルダ内のファイルの一覧を取得するサンプル(Fileクラス)
Java ドライブの容量と空き容量を取得するサンプル(Fileクラス)

△上に戻る