我正在尝试用新行符号“\ n”拆分此文件eng-pol.txt中的行并且它根本不起作用...我试过了:
String[] words = strLine.split("\n");
System.out.println(Arrays.toString(words));
[abbot abbot [ˈæbət] <N>\n opat]
String[] words = strLine.split("\\n");
System.out.println(Arrays.toString(words));
[abbot abbot [ˈæbət] <N>\n opat]
String[] words = strLine.split("\\r|\r");
System.out.println(Arrays.toString(words));
[abbot abbot [ˈæbət] <N>\n opat]
即便如此:
String[] words = strLine.split(System.getProperty("line.separator"));
System.out.println(Arrays.toString(words));
[abbot abbot [ˈæbət] <N>\n opat]
我正在使用BufferedReader
和readLine
方法阅读该文件。
答案 0 :(得分:7)
我不确定我是否理解正确,但我发现您的文件包含\n
文字(不是实际的换行符)。如果你想拆分它们,那么你需要写分割为
split("\\\\n")
代表\
字面值的正则表达式看起来像\\
(需要进行转义,否则单个\
将被视为预定义字符类的开头,例如\d
代表数字)。
但代表此类正则表达式\\
的字符串需要写为"\\\\"
,因为字符串\
也很特殊,也需要进行转义。
简而言之,要将\
与正则表达式匹配,您需要在两个级别中将其转义:
\\
"\\\\"
中的