Hadoop - 管道分隔符无法识别

时间:2013-07-27 02:09:10

标签: java parsing hadoop

我想在映射器中的number|twitter|abc..字符串上拆分带有管道符号的文件。 这是一个很长的字符串。但是,当我这样做时,它无法识别管道分隔符:

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

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

2 个答案:

答案 0 :(得分: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);
      }
   }
}

答案 1 :(得分:0)

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