2013-07-27 52 views
0

我想在映射程序中使用管道字符像number|twitter|abc..这样的字符串分割文件。 这是一个很长的字符串。但它不承认竖线分隔符,当我做:Hadoop - 管道分隔符未被识别

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

如果我尝试将其与像line.split(" ")的空间分割,它工作得很好,所以我不认为这是它识别字符的问题。 还有其他可以看起来像管道的角色吗?为什么不分裂认出|角色?

回答

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); 
     } 
    } 
} 
0

String.split需要正则表达式(作为javadoc状态),并且"|"是正则表达式中的特殊字符。改为尝试"[|]"