我想读取一个文本文件,其中字段数据由分隔符|分隔(管道符号)。
但发生了一些意想不到的事情:
这是我的代码:
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 |不管用 ?我无法更改框架代码(使用Scanner)并使用String Split。
答案 0 :(得分:11)
管道符是保留的正则表达式字符,您需要将其转义。 例如,您需要使用
\\|
将它放在代码中会得到以下输出