2013-07-27 56 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狀態),並且"|"是正則表達式中的特殊字符。改爲嘗試"[|]"