0

私はテキストファイルを持っています:

  90,-5 ,, 37  ,  1  99
  0 -55,,,
  ,,,11

整数を配列に抽出する必要があります。私はこのコードでそうするように訓練してきました:

File file=new File("2.txt");
Scanner in=new Scanner(file);
in.useDelimiter(" *|,*|\\n");
int[] b=new int[20];
int i=0;
while(in.hasNextInt()){
  b[i]=in.nextInt();
  i++;  
              }
  in.close();

私は何を間違っていますか?

4

2 に答える 2

0

パターンに関するドキュメンテーションを読む必要があるかもしれないと思います。なぜなら、簡単にざっと見てみる|と、ユニオン演算子のようには見えないからです。また、\\n改行文字ではなく、リテラルのバックスラッシュ n ではないでしょうか?

http://docs.oracle.com/javase/tutorial/essential/regex/index.html

スキャナ

于 2013-09-06T19:32:09.140 に答える
0

区切り式と区切り文字が一致しません。この場合、区切り文字よりも関心のある文字を一致させる方が簡単です。プリコンパイル済みPatternを使用すると、パフォーマンスを向上させることができます。

Pattern pattern = Pattern.compile("-?\\d+");
BufferedReader reader = new BufferedReader(new FileReader("2.txt"));
String line;

while ((line = reader.readLine()) != null) {
    Matcher m = pattern.matcher(line);
    while (m.find()) {
        System.out.println(m.group(0));
    }
}
于 2013-09-06T17:12:59.227 に答える