按新行符号拆分字符串

时间:2014-07-31 20:35:08

标签: java string split newline

我正在尝试用新行符号“\ 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]

我正在使用BufferedReaderreadLine方法阅读该文件。

1 个答案:

答案 0 :(得分:7)

我不确定我是否理解正确,但我发现您的文件包含\n文字(不是实际的换行符)。如果你想拆分它们,那么你需要写分割为

split("\\\\n")

代表\字面值的正则表达式看起来像\\(需要进行转义,否则单个\将被视为预定义字符类的开头,例如\d代表数字)。

但代表此类正则表达式\\的字符串需要写为"\\\\",因为字符串\也很特殊,也需要进行转义。

简而言之,要将\与正则表达式匹配,您需要在两个级别中将其转义:

  • in regex \\
  • 字符串"\\\\"中的