はじめに
学習用のメモになります。
標準入力とは?
もともとはLINUXなどのUnix系OSで用意されていた仕組みです。
標準入力に対応するようにプログラムを作っておけば、プログラム実行時に、ファイルを読み込んだり、キーボードからデータを読み込んだり、パラメータを指定したりというように、入力先を切り替えることができます。
標準入力から文字列の読み込み
Main.java
// 標準入力
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //Scanner クラスは標準入力を取得するのに必要
String line = sc.next(); //1行分入力を取得する:nextLine()
System.out.println(line);
}
}
Scanner sc = new Scanner(System.in);
標準入力を読み込むために必要
String line = sc.next();
標準入力された値をline変数に代入している
標準入力から数値の読み込み
Main.java
// 標準入力
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int line = sc.nextInt(); //データ型をintで数値に変換
System.out.println(line);
}
}
複数データを読み込む
入力値
3
Java
Ruby
HTML
Main.java
// 標準入力とループ処理
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
System.out.println("データ個数 "+count);
String data;
for(int i =0;i<count;i++){
data = sc.next();
System.out.println("hello " + data);
}
}
}
出力値
データ個数 3
hello Java
hello Ruby
hello HTML
1行に複数要素がある場合
split
メソッドで,
区切りで要素を配列(array)に代入する
Main.java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data = sc.nextLine();
String[] array = data.split("、");
System.out.println(array[0]);
}
}
複数行の要素を出力する場合
Main.java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String data = sc.nextLine();
System.out.println(data);
}
}
}
hasNextLine
メソッドは入力する行がまだあるかみているメソッド
while (sc.hasNextLine())