java useDelimeter 拆分为 -

java useDelimeter split on -

我正在尝试解析一个类似于

的 txt 文件
A - 19
B - 2
C - 3

我正在使用扫描仪方法读取它并在“-”中拆分,这样我的输出将如下所示:

A
19
B
2
C
3

但是它似乎没有正确拆分。这就是那部分代码的样子:

Scanner s = new Scanner(fileName).useDelimiter("\s*-\s*");
System.out.println(s.next());
System.out.println(s.next());

s.close();

我希望它看起来像:

A
19

但我的输出是:

A
19
B

您应该使用此正则表达式作为分隔符:

Scanner s = new Scanner(fileName).useDelimiter("\s*-\s*|\R+");

其中 \R+ 匹配 1 个或多个任何类型的换行符。

  public static void main(String[] args) throws FileNotFoundException {
    String fileName = "C://temp//split.txt";
    try (Scanner s = new Scanner(new File(fileName)).useDelimiter(" - ")) {
      while(s.hasNext()) {
        System.out.println(s.next());
      }
    }
  }