我想读取一个文本文件,其中字段数据由定界符| (管道符号)。

但发生了一些意外:

这是我的代码:

doScannerTest ("Y~2011~GT~Nepal~Ganesh~Tiwari~N", "~");
doScannerTest("Y|2011|GT|Nepal|Ganesh|Tiwari|N", "|");

private static void doScannerTest(String recordLine, String delim) {
    java.util.Scanner lineScanner = new java.util.Scanner(recordLine);
    lineScanner.useDelimiter(delim);
    while (lineScanner.hasNext()) {
        System.out.println(lineScanner.next());
    }
}

delim〜工作正常,但|打印recordLine中的所有字符。

为什么与delim记录|不管用 ?我无法更改框架代码(使用扫描仪)和字符串拆分。

最佳答案

竖线字符是保留的正则表达式字符,您需要对其进行转义。
例如您需要使用

\\|

将其放在您的代码中给出以下输出
  • Y
  • 2011
  • GT
  • 尼泊尔
  • Ganesh
  • Tiwari
  • N
  • 10-06 13:13