我知道我需要使用 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");
}
}
}
当我使用不包含换行符且仅包含正斜杠的文本文件时,它工作得很好,但由于某种原因,我无法让它将换行符识别为分隔符。
最佳答案
一种可能性是文本文件实际上包含回车符而不是换行符。
我的理解是 "[/\n]"
和 "[/\\n]"
都应该作为分隔符正则表达式......如果你真的有要匹配的换行符。
关于java - 如何为扫描仪使用两个分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711832/