Scanner next()作为参数

时间:2012-05-08 01:12:48

标签: java next

我有这种格式的文件。 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();

}

2 个答案:

答案 0 :(得分:2)

我认为分隔符/未正确转义。尝试使用类似\/来逃避这一点。有关更清晰的信息,请参阅此Escaping a forward slash in a regular expression

答案 1 :(得分:0)

我认为有两种方法可以解决这个问题。第一种是使用reset()来重置分隔符。所以我的意思是使用''为nextInt的默认分隔符,然后调用useDelimiter('/')进行下一次调用。然后调用scanner.reset()。

另一种方法可能是根据/分隔符获取字符串。然后根据空格进一步拆分该字符串作为下一个分隔符。也许使用StringTokenizer来实现这一目标。

相关问题