String text="2|919505485043|2013-08-08 12:57:50|2013-08-08 12:58:04|2013-08-08 12:58:08|ANSWER";
Run Code Online (Sandbox Code Playgroud)
我想用|.分割字符串.我在java中使用上面的字符串.我使用的时候
System.out.println(text.split("|").length);
Run Code Online (Sandbox Code Playgroud)
我得到了结果82.这可能是错的.
Rei*_*eus 12
String#split使用正则表达式作为参数.管道字符|具有特殊含义(意味着OR)可防止String在每个文字内部进行拆分|.
它应该被逃脱
text.split("\\|").length
Run Code Online (Sandbox Code Playgroud)
否则String在确定长度时将使用完整
String.split(String)使用正则表达式,并且|在正则表达式中具有特殊含义.
选项:
我个人会采用后一种方法 - 我认为它实际上是一个String.split使用正则表达式的设计缺陷,而且在调用代码时也不清楚.
如果你真的想使用它String.split,我肯定会用Pattern.quote它来清楚地告诉任何人为什么你要逃避它 - 只是使用"\\|"不是非常自我记录,IMO.