Android扫描仪定界符问题

Android扫描仪定界符问题,android,string,text,java.util.scanner,delimiter,Android,String,Text,Java.util.scanner,Delimiter,好的,前几天我遇到了文件编写器不更新换行的问题,但是我得到了一些帮助并解决了这个问题。现在,就像以前一样,我编写了一些我的旧代码(在旧程序中工作得非常好)来读取所编写的文件。我使用“|”作为分隔符(parties.useDelimiter(“|”))。当我调用pieces.next()时,它只检测下一个字符,而不检测下一个字符串直到分隔符。我错过了什么? 代码段: try{ mFile = new Scanner(newFile(loadPath)); while(mFile.h

好的,前几天我遇到了文件编写器不更新换行的问题,但是我得到了一些帮助并解决了这个问题。现在,就像以前一样,我编写了一些我的旧代码(在旧程序中工作得非常好)来读取所编写的文件。我使用“|”作为分隔符(parties.useDelimiter(“|”))。当我调用pieces.next()时,它只检测下一个字符,而不检测下一个字符串直到分隔符。我错过了什么? 代码段:

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

}}

传递给的字符串被解释为正则表达式
|
是正则表达式中的一个特殊字符,因此必须使用反斜杠对其进行转义。反斜杠本身需要转义,以便通过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
以修剪分隔符


我希望这能有所帮助。

请发布一些上下文代码。非常感谢!你有关于逃跑信息的链接吗?我以前从未遇到过…@weh:尝试使用标准Java字符串文字语法和正则表达式语法(请参阅“反斜杠、转义和引号”一节)