Как стать автором
Обновить

Комментарии 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-ов и он мне выдал такие результаты:

Первый случай:

Выделяет \\n и хочет из него сделать \n
Выделяет \\n и хочет из него сделать \n


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

Выделяет \n и кажеся тут всё будет хорошо
Выделяет \n и кажеся тут всё будет хорошо


Грустно, конечно это сейчас узнать, благо это не такой важный момент в статье оказался. Если кто то сможет объяснить почему так странно regex101 работает, буду очень благодарен.

P.S. Ошибка всё равно в коде присутсвует и на самом деле не очень понятно что автор конкретно хотел этим кодом сделать. Остаётся только гадать.

regex101 принимает сырые строки в обоих полях, поэтому "\\r?" и "\n" на сайте -- это "\\\\r?" и "\\n" в джаве. Как там вбивать спец символы в test string я не знаю, видимо только вставлять откуда-нибудь ещё

На самом деле всё довольно тривиально, если так проще, то представлю вам в виде моей выжимки:

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);
    }
    ....
}

Зарегистрируйтесь на Хабре, чтобы оставить комментарий