我有这种格式的文件。 50 xxx / 70 aaa / 90 ccc /
程序将文件保存到默认目录,我认为它试图从中读取。但它只是没有扫描任何东西......有什么不对的吗?我不擅长编程抱歉
我希望它读取50到“之前”xxx到“text”,然后在aPf.insert中使用这两个东西(先前,文本)。
File file = new File("poznamky.txt");
Scanner scanner = null;
int prior;
String text;
try {
scanner = new Scanner(file);
scanner.useDelimiter("/");
while (scanner.hasNext()) {
prior = scanner.nextInt();
text = scanner.next();
aPf.insert(prior, text);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
答案 0 :(得分:2)
我认为分隔符/
未正确转义。尝试使用类似\/
来逃避这一点。有关更清晰的信息,请参阅此Escaping a forward slash in a regular expression。
答案 1 :(得分:0)
我认为有两种方法可以解决这个问题。第一种是使用reset()来重置分隔符。所以我的意思是使用''为nextInt的默认分隔符,然后调用useDelimiter('/')进行下一次调用。然后调用scanner.reset()。
另一种方法可能是根据/分隔符获取字符串。然后根据空格进一步拆分该字符串作为下一个分隔符。也许使用StringTokenizer来实现这一目标。