0

スキャナーストリームに整数だけを読み取らせるにはどうすればよいですか

Jane    354
Jill    546
Jenny   718
Penny   125

Scanner メソッドnextLine()は名前と番号の両方を読み取るので、解析するだけでよいと思いますがnextInt()、名前をスキップして番号のみを読み取る方法があるかどうかを知りたかったのです。で始まることString

4

4 に答える 4

0

あなたはこのようなことをすることができます

Scanner read = new Scanner(new File("some file here"));
while(read.hasNext()){
    if(read.next() instanceof Integer){
        System.out.println(read.next());
    }
}
于 2013-10-22T11:53:20.670 に答える
0

また、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));
}
于 2013-10-21T23:06:33.030 に答える
0

を使用してnext()、その結果を無視してから使用するのはnextInt()どうですか? すべての行が質問で提示した形式である場合、これはまさに必要なことを行うはずです。

于 2013-10-21T22:51:14.750 に答える
0

たとえば、次のように、scanner.next() を呼び出すだけで、何もせずに文字列をスキップできます。

// Scanner sc;
while(sc.hasNextLine()){
    sc.next(); //Skip string
    int number = sc.nextInt();
}
于 2013-10-21T22:51:56.593 に答える