我想在映射程序中使用管道字符像number|twitter|abc..
這樣的字符串分割文件。 這是一個很長的字符串。但它不承認豎線分隔符,當我做:Hadoop - 管道分隔符未被識別
String[] columnArray = line.split("|");
如果我嘗試將其與像line.split(" ")
的空間分割,它工作得很好,所以我不認爲這是它識別字符的問題。 還有其他可以看起來像管道的角色嗎?爲什麼不分裂認出|
角色?
我想在映射程序中使用管道字符像number|twitter|abc..
這樣的字符串分割文件。 這是一個很長的字符串。但它不承認豎線分隔符,當我做:Hadoop - 管道分隔符未被識別
String[] columnArray = line.split("|");
如果我嘗試將其與像line.split(" ")
的空間分割,它工作得很好,所以我不認爲這是它識別字符的問題。 還有其他可以看起來像管道的角色嗎?爲什麼不分裂認出|
角色?
在另一個答案中共享 「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);
}
}
}
String.split
需要正則表達式(作爲javadoc狀態),並且"|"
是正則表達式中的特殊字符。改爲嘗試"[|]"
。