Java - 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());
}
}
delim ~ 工作正常,但是 |打印 recordLine 中的所有字符。
为什么记录带delim |不工作?我无法更改框架代码(使用扫描仪)并使用字符串拆分。
I want to read a text file where fields data are separated by delimiter | (pipe symbol).
But some unexpected happened :
Here is my code :
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());
}
}
The delim ~ works fine but | prints all characters in recordLine.
Why the record with delim | is not working ? I cannot change the framework code(which uses Scanner) and use String Split.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
管道字符是保留的正则表达式字符,您需要对其进行转义。
例如,您需要将
其放入代码中,给出以下输出
the pipe character is a reserved regex character, you will need to escape it.
for example you need to use
putting that in your code gives the below output