为什么String.split需要竖线分隔符进行转义? [英] Why does String.split need pipe delimiter to be escaped?
本文介绍了为什么String.split需要竖线分隔符进行转义?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图解析与管道分隔值每行一个文件。
当我没逃过拆分法管道分隔符它没有正常工作,它的工作后,正确逃出我下面的管道。
I am trying to parse a file that has each line with pipe delimited values. It did not work correctly when i did not escape the pipe delimiter in split method, it worked correctly after i escaped the pipe as below.
private ArrayList<String> parseLine(String line) {
ArrayList<String> list = new ArrayList<String>();
String[] list_str = line.split("\\|"); // note the escape "\\" here
System.out.println(list_str.length);
System.out.println(line);
for(String s:list_str) {
list.add(s);
System.out.print(s+ "|");
}
return list;
}
有人可以解释为什么管道字符需要转义为拆分()
方法?
推荐答案
String.split
预计经常EX pression说法。一个转义 |
被解析为一个正则表达式的意思是空字符串或空字符串,这是不是你的意思
String.split
expects a regular expression argument. An unescaped |
is parsed as a regex meaning "empty string or empty string," which isn't what you mean.
这篇关于为什么String.split需要竖线分隔符进行转义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文