Комментарии 6
text.replaceAll("\\r?\\n|\\r", "\n");
Но самое важное, что и написанное регулярное выражение кажется мне тоже неверным.
Вроде всё работает:
Вот такой код
import java.util.Arrays;
class Scratch {
public static void main(String[] args) {
String text = "\n \r \r\n \\r";
String res = text.replaceAll("\\r?\\n|\\r", "\n");
System.out.println(Arrays.toString(res.getBytes()));
System.out.println(res);
}
}
Выводит следующий текст
[10, 32, 10, 32, 10, 32, 92, 114]
\r
10 -- перенос строки (\n), а 32 -- пробел. 92 и 114 -- \ и r
Кажется вы правы, и в рамках Java это не имеет никакой разницы. Я попробовал потестировать ваш вариант и разными вариациями и получил одинаковые результаты.
Проблема в том что свои выводы я сделал на онлайн компиляторе regex-ов и он мне выдал такие результаты:
Первый случай:

Второй случай:

Грустно, конечно это сейчас узнать, благо это не такой важный момент в статье оказался. Если кто то сможет объяснить почему так странно regex101 работает, буду очень благодарен.
P.S. Ошибка всё равно в коде присутсвует и на самом деле не очень понятно что автор конкретно хотел этим кодом сделать. Остаётся только гадать.
вдруг в expand там чтото не тривиально получается, интересно, спасибо
На самом деле всё довольно тривиально, если так проще, то представлю вам в виде моей выжимки:
public class AABB {
public double minX;
public double minY;
public double minZ;
public double maxX;
public double maxY;
public double maxZ;
....
public AABB expand(double x, double y, double z) {
double d1 = this.minX - x;
double d2 = this.minY - y;
double d3 = this.minZ - z;
double d4 = this.maxX + x;
double d5 = this.maxY + y;
double d6 = this.maxZ + z;
return getAABB(d1, d2, d3, d4, d5, d6);
}
....
}
Как уронить Minecraft своим модом