【问题标题】:java useDelimeter split on -java useDelimeter 拆分-
【发布时间】:2020-07-24 20:43:36
【问题描述】:

我正在尝试解析一个看起来像

的 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

【问题讨论】:

  • 因为你只是在破折号上拆分,而不是行终止符,所以添加:useDelimiter("\\s*-\\s*|\\s*\\R");

标签: java regex java.util.scanner


【解决方案1】:

你应该使用这个正则表达式作为分隔符:

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

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

【讨论】:

    【解决方案2】:
      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());
          }
        }
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-12
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      相关资源
      最近更新 更多