【问题标题】:Scanner next() as parameter扫描仪 next() 作为参数
【发布时间】:2012-05-16 12:01:41
【问题描述】:

我有这种格式的文件。 50 xxx/ 70 aaa/ 90 ccc/

程序将文件保存到默认目录,我认为它试图从中读取相同的目录。但它只是不扫描任何东西......请问有什么问题?我不擅长编程抱歉

我希望它读取 50 到“之前”xxx 到“文本”,然后在 aPf.insert(prior, text) 中使用这两个东西。

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();

}

【问题讨论】:

  • 哦,是的,我创建了 aPf....

标签: java next


【解决方案1】:

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

解决此问题的另一种方法可能是根据 / 分隔符获取字符串。然后根据空格进一步拆分该字符串作为下一个分隔符。也许使用 StringTokenizer 来完成这个。

【讨论】:

  • 非常感谢!我做了很多不同的事情,但我不知道字符串标记器是什么,所以我学到了一些新东西,它有帮助:) 谢谢
【解决方案2】:

我认为分隔符/ 没有正确转义。尝试使用 \/ 来逃避这种情况。请参考此Escaping a forward slash in a regular expression 以获得更清晰的信息。

【讨论】:

  • 哦,好吧,我现在将分隔符更改为 |它有点工作..但我仍然有问题..但我会尝试解决它,你帮助了一点:)
  • 很高兴它有帮助。请让我们知道其他问题,我们可以尝试帮助您。
猜你喜欢
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
相关资源
最近更新 更多