为什么 \R 在 Java 8 和 Java 9 之间的正则表达式中的行为不同?
以下代码在 Java 8 和 9 中编译,但行为不同。
class Simple {
static String sample = "\nEn un lugar\r\nde la Mancha\nde cuyo nombre\r\nno quiero acordarme";
public static void main(String args[]){
String[] chunks = sample.split("\\R\\R");
for (String chunk: chunks) {
System.out.println("Chunk : "+chunk);
}
}
}
当我使用Java 8运行它时,它返回:
Chunk :
En un lugar
de la Mancha
de cuyo nombre
no quiero acordarme
但是当我用Java 9运行它时,输出是不同的:
Chunk :
En un lugar
Chunk : de la Mancha
de cuyo nombre
Chunk : no quiero acordarme
为什么?