다음 코드는 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
왜?
\R
에서는 탐욕스러운 것처럼 보이지만 9에서는 그렇지 않습니다.