パイプで区切られた値を持つ各行を含むファイルを解析しようとしています。splitメソッドでパイプ区切り文字をエスケープしないと正しく機能しませんでしたが、以下のようにパイプをエスケープした後は正しく機能しました。
private ArrayList<String> parseLine(String line) {
ArrayList<String> list = new ArrayList<String>();
String[] list_str = line.split("\\|"); // note the escape "\\" here
System.out.println(list_str.length);
System.out.println(line);
for(String s:list_str) {
list.add(s);
System.out.print(s+ "|");
}
return list;
}
split()
メソッドでパイプ文字をエスケープする必要がある理由を誰かが説明できますか?
+1
—
redDevil 2014
Pattern.quote
String
を取りString
、入力と一致する正規表現を返します(つまり、すべてのエスケープを処理します)。