【发布时间】: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