我正在尝试在以下字符串上使用split()函数:
String columnFeed = “MANDT+00005+C+CURNCY+00004+C”
如下:
String[] columns = columnsFeed.split("+");
然而,当我执行我的代码时,我收到以下错误:
“线程中的异常" main" java.util.regex.PatternSyntaxException:悬空元字符' +'接近指数0 +”
我已经在索引0检查了整个字符串中的'+'字符,但没有找到。我使用以下代码进行检查:
for(int i = 0 ; i < columnsFeed.length() ; i++)
{
System.out.println("Char at i = "+i+" is = "+columnsFeed.charAt(i));
}
答案 0 :(得分:5)
你必须逃脱String[] columns = columnsFeed.split("\\+");
,因为它是一个特殊角色。使用以下内容:
+
在索引0 +
附近悬挂元字符'+'
由于"+"
是一个特殊字符,因此在某些表达后会出现。这里{{1}}之前没有任何..因此错误。
答案 1 :(得分:1)
我认为在+
上拆分的正确方法是在类似问题here中给出的。这是要点:
String expression = "1+2+10+1";
String[] tokens = expression.split("\\+");