使用split()时悬空元字符

时间:2015-05-21 17:03:59

标签: java regex

我正在尝试在以下字符串上使用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));
}

2 个答案:

答案 0 :(得分:5)

你必须逃脱String[] columns = columnsFeed.split("\\+"); ,因为它是一个特殊角色。使用以下内容:

+
  

在索引0 +

附近悬挂元字符'+'

由于"+"是一个特殊字符,因此在某些表达后会出现。这里{{1}}之前没有任何..因此错误。

答案 1 :(得分:1)

我认为在+上拆分的正确方法是在类似问题here中给出的。这是要点:

String expression = "1+2+10+1";
String[] tokens = expression.split("\\+");