Java 拆分字符串时的奇怪行为
我尝试使用分隔符拆分字符串,当我从字符串数组中的不同单元格获取值时,会得到一些奇怪的结果。例如:Java 拆分字符串时的奇怪行为,java,Java,我尝试使用分隔符拆分字符串,当我从字符串数组中的不同单元格获取值时,会得到一些奇怪的结果。例如: dataString = (String) hashMap.get("LCSSAMPLEREQUEST_sampleRequestString"); System.out.println(dataString); String dataStringSplit[] = dataString.split("quantity|&^&|"); String tempString = d
dataString = (String) hashMap.get("LCSSAMPLEREQUEST_sampleRequestString");
System.out.println(dataString);
String dataStringSplit[] = dataString.split("quantity|&^&|");
String tempString = dataStringSplit[0];
以下是数据字符串中第一个分隔符之前的行:
"sortingNumber|&^&|1|-()-|ID|&^&|1|-()-|DROPPED|&^&|false|-()-|"
现在,当我对'tempString'
执行System.out
时,我得到一个没有值的字符串
如果执行tempString=dataStringSplit[1]
,则会得到一个值'sor'
我在这里做错了什么?
“数量&^&&&&
应该是“数量\\\\\\\\\\\\\\\\\\\\\\\\\”
|
和^
是正则表达式中的元字符。为了将其视为普通字符,您应该使用反斜杠对其进行转义,如果您只需编写一个简短但完整的程序来演示该问题,将更容易为您提供帮助。例如,您从哈希映射中获取它的事实是无关紧要的。我强烈怀疑,split
与正则表达式一起工作的事实就是问题所在…@jlordo。因为它们不需要在正则表达式中转义。