Строка кода, связанного в вашем вопросе определяет критерии StringLike.lines
использует для разрывов строки:
private def isLineBreak(c: Char) = c == LF || c == FF
LL
и FF
определяются как:
private final val LF = 0x0A
private final val FF = 0x0C
Символ Unicode \u2028
не то же самое как любой из них. В интерпретаторе лестницу, мы можем проверить это:
scala> val x = "\u2028"
x: String = "
"
scala> val LF = 0x0A
LF: Int = 10
scala> val FF = 0x0C
FF: Int = 12
scala> x == LF || x == FF
res0: Boolean = false
Это причина, почему StringLike.lines
не отражает данную Unicode разрыв строки.
Я бы предположил, что причина, по которой функция Scala написана таким образом, то есть почему она использует только эти разрывы строк ASCII (LF и FF), заключается в том, что не должно быть сделано предположений о строковой кодировке, т.е. UTF-8 и ISO-8859-1 и т. Д.
Может быть ошибкой, то же самое верно для \ u2424 «СИМВОЛ ДЛЯ НОВОЙ». Вы можете попробовать [сообщить об этом] (https://issues.scala-lang.org/). Кроме того, в качестве обходного пути, хороший кандидат на модель * pimp my library * –