Javaのコンソールから文字列を入力するサンプルです。(確認環境:Java 8,Eclipse 4.8)
目次
サンプル | コンソールから文字列を入力する |
複数の行を入力する | |
複数の行を入力する(ループを使用) | |
InputStreamReaderとBufferedReaderを使用する |
コンソールから文字列を入力する
コンソールから文字列を入力するサンプルです。
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があります。
以下はJava8 API仕様のScannerクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Scanner.html
以下はJava8 API仕様のSystemクラスのinフィールドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/System.html#in
関連の記事