プログラミングのテクニック/入力の処理(Java)

Last-modified: 2012-04-03 (火) 18:58:14

このへんが参考になると思います。
入出力(てきとーな日記)

 

Scanner (java.util.Scanner)

とりあえずScannerを使いましょう。色々関数が揃っていて便利です。
コンストラクタの引数に入力元を指定します。
入力元が標準入力なら

Scanner in = new Scanner(System.in);

入力元がファイルなら

Scanner in = new Scanner(new File("c:\\pya-.txt"));

入力元が文字列なら

Scanner in = new Scanner("okkikki");

とか書けば良いです。

Scanner in = new Scanner(System.in);
int n = in.nextInt();
long l = in.nextLong();
double d = in.nextDouble();
String s = in.next();
String line = in.nextLine();
BigInteger b = in.nextBigInteger();

nextLineは次の1行、nextは改行・空白文字を区切りとして次の文字列を読み取ります。nextLineとnextを併用するときはnextLineを呼ぶ前に一度nextLineを空呼びしておきましょう。

読み込むものがあるかないかはhasNext等で判定します。

Scanner in = new Scanner(System.in);
while(in.hasNext()){
	String s = in.next();
}
 

次の工夫をするとちょっと高速になります。

Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.next());
long l = Long.parseLong(in.next());
double d = Double.parseDouble(in.next());

BufferedReader+StringTokenizer (java.io.BufferedReader+java.util.StringTokenizer)

InputStream (java.io.InputStream)

Scanner.useDelimiter