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。因为它们不需要在正则表达式中转义。