スキャナーストリームに整数だけを読み取らせるにはどうすればよいですか
Jane 354
Jill 546
Jenny 718
Penny 125
Scanner メソッドnextLine()
は名前と番号の両方を読み取るので、解析するだけでよいと思いますがnextInt()
、名前をスキップして番号のみを読み取る方法があるかどうかを知りたかったのです。で始まることString
。
スキャナーストリームに整数だけを読み取らせるにはどうすればよいですか
Jane 354
Jill 546
Jenny 718
Penny 125
Scanner メソッドnextLine()
は名前と番号の両方を読み取るので、解析するだけでよいと思いますがnextInt()
、名前をスキップして番号のみを読み取る方法があるかどうかを知りたかったのです。で始まることString
。
あなたはこのようなことをすることができます
Scanner read = new Scanner(new File("some file here"));
while(read.hasNext()){
if(read.next() instanceof Integer){
System.out.println(read.next());
}
}
また、scanner.nextLine() を使用してから、正規表現マッチャーで int を取得することもできます
String mydata = scanner.nextLine();
Pattern pattern = Pattern.compile([0-9]+);
Matcher matcher = pattern.matcher(mydata);
if (matcher.find()){
int num = Integer.parseInt(matcher.group(1));
}
を使用してnext()
、その結果を無視してから使用するのはnextInt()
どうですか? すべての行が質問で提示した形式である場合、これはまさに必要なことを行うはずです。
たとえば、次のように、scanner.next() を呼び出すだけで、何もせずに文字列をスキップできます。
// Scanner sc;
while(sc.hasNextLine()){
sc.next(); //Skip string
int number = sc.nextInt();
}