【问题标题】:Android Scanner Delimiter IssuesAndroid 扫描仪分隔符问题
【发布时间】:2011-01-27 18:09:59
【问题描述】:

好的,前几天我在 FileWriter 没有换行时遇到了麻烦,但我得到了一些帮助并解决了它。现在,就像以前一样,我使用我的一些旧代码(在旧 prgram 中完美运行)来读取写入的文件。我用“|”作为分隔符(pieces.useDelimiter("|");)。当我调用pieces.next() 时,它只会占用下一个字符,而不是直到分隔符的下一个字符串。我错过了什么? 代码sn-p:

try{
    mFile = new Scanner(newFile(loadPath));
    while(mFile.hasNextLine()){
        String input = mFile.nextLine();
        Scanner pieces = new Scanner(input);
        pieces.useDelimiter("|");
        while(pieces.hasNext()){
            int row = Integer.valueOf(pieces.next());
            int col = Integer.valueOf(pieces.next());
            String pullPath = pieces.next();
            ......

}}

【问题讨论】:

  • 请贴一些代码以获取上下文。

标签: android string text java.util.scanner delimiter


【解决方案1】:

您传递给useDelimiter 的字符串被解释为正则表达式。 | 是正则表达式中的特殊字符,因此您必须使用反斜杠对其进行转义。并且反斜杠本身需要转义,以便通过 Java 编译器。因此,如下更改该行应该可以解决问题:

    pieces.useDelimiter("\\|");

另外,请注意pieces.next() 返回的字符串包含分隔符。我怀疑这些行:

        int row = Integer.valueOf(pieces.next());
        int col = Integer.valueOf(pieces.next());

可以替换为:

        int row = pieces.nextInt();
        int col = pieces.nextInt();

您可能还需要调整 pullPath 以修剪分隔符。

我希望这会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-04-03
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多