gti*_*333 3 java java.util.scanner
我想读取一个文本文件,其中字段数据由分隔符|分隔 (管道符号).
但有些意外发生了:
这是我的代码:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
delim~工作正常,但是 打印recordLine中的所有字符.
为什么记录有delim | 不管用 ?我无法更改框架代码(使用Scanner)并使用String Split.
Kev*_*n D 11
管道字符是一个保留的正则表达式字符,您需要将其转义.例如,你需要使用
\\|
Run Code Online (Sandbox Code Playgroud)
把它放在你的代码中给出了以下输出