为了账号安全,请及时绑定邮箱和手机立即绑定

为什么String.split需要管道分隔符进行转义?

为什么String.split需要管道分隔符进行转义?

catspeake 2019-07-24 19:58:07
为什么String.split需要管道分隔符进行转义?我试图解析具有管道分隔值的每一行的文件。当我没有在split方法中转义管道分隔符时,它无法正常工作,但是在我如下所示转义管道后它正常工作。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;}有人可以解释为什么管道角色需要为split()方法转义?
查看完整描述

3 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

String.split期望一个正则表达式参数。未转义|的解析为正则表达式,意思是“空字符串或空字符串”,这不是你的意思。


查看完整回答
反对 回复 2019-07-24
?
莫回无

TA贡献1865条经验 获得超7个赞

因为要拆分的参数的语法是正则表达式,所以在'|'中 具有OR的特殊含义,并且'\ |' 意思是文字“|” 所以字符串“\\ |” 表示正则表达式'\ |' 这意味着完全匹配字符'|'。


查看完整回答
反对 回复 2019-07-24
?
largeQ

TA贡献2039条经验 获得超7个赞

你可以这样做:

String[] arrayString = yourString.split("\\|");


查看完整回答
反对 回复 2019-07-24
  • 3 回答
  • 0 关注
  • 626 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信