【问题标题】:how to use two delimiters for a Scanner [duplicate]如何为扫描仪使用两个分隔符[重复]
【发布时间】:2013-10-31 16:26:26
【问题描述】:

我知道我需要使用input.useDelimeter 方法,但由于某种原因,当我尝试将两个定界符设置为正斜杠和换行符时,input.useDelimiter("[/\n]"); 它给了我一个输入不匹配错误。我也试过("/\n"); and ("[/\\n]");

这里是有问题的方法。

public static void main(String[] args)
   throws FileNotFoundException {
   int month = 0;
   int day = 0;
   int year = 0;
   File file = new File("dates.txt");
   Scanner input = new Scanner(file);
   if (file.exists()){
      while (input.hasNextLine()){
         input.useDelimiter("[/]");
         month = input.nextInt();
         day = input.nextInt();
         year = input.nextInt();
         System.out.print(day + "-" + month + "-" + year + "\n");

      }
   }
}

当我使用不包含换行符且仅包含正斜杠的文本文件时,它工作得很好,但由于某种原因,我无法让它将换行符识别为分隔符。

【问题讨论】:

  • 为什么需要识别新行?我只会匹配正斜杠,然后替换换行符。
  • 另外,是否有理由使用System.out.print(),然后附加\n 而不仅仅是println()
  • 整个打印声明不会真的存在,它只是为了测试,是的,我没想到。就@JorgeCampos 的评论而言,这是一项家庭作业,我必须让它能够阅读我的老师会给它的文件。
  • 好吧,如果您的文件中有特定内容,请创建一个正则表达式来匹配您需要的内容,然后读取文件并遍历匹配项,换行符无关紧要

标签: java regex parsing delimiter


【解决方案1】:

一种可能性是文本文件实际上包含回车而不是换行符。

我的理解是"[/\n]""[/\\n]" 都应该作为分隔符正则表达式......如果你真的有换行符要匹配的话。

【讨论】:

    猜你喜欢
    • 2014-04-03
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多