0

我想number|twitter|abc..在映射器中的字符串上使用管道字符拆分文件。这是一个长字符串。但是当我这样做时它不识别管道分隔符:

String[] columnArray = line.split("|");

如果我尝试用 之类的空格分割它line.split(" "),它可以正常工作,所以我认为它识别字符没有问题。还有其他看起来像管道的角色吗?为什么拆分不识别|字符?

4

2 回答 2

1

正如在另一个答案中共享的那样,“String.split 需要一个正则表达式参数。未转义的 | 被解析为正则表达式,意思是“空字符串或空字符串”,这不是你的意思。 https://stackoverflow.com/a/9808719/2623158

这是一个测试示例。

public class Test
{
   public static void main(String[] args)
   {
      String str = "test|pipe|delimeter";
      String [] tmpAr = str.split("\\|");

      for(String s : tmpAr)
      {
         System.out.println(s);
      }
   }
}
于 2013-07-27T02:23:26.837 回答
0

String.split采用正则表达式(如 javadoc 所述),并且"|"是正则表达式中的特殊字符。试试吧"[|]"

于 2013-07-27T02:22:36.623 回答