Java: игнорировать escape-последовательности

Для моих интерфейсов командной строки часто приятно иметь немного ASCII-графики в начале, но они часто содержат много обратной косой черты.

например:

System.out.println("  _____ _______       _____ _  __ ");
System.out.println(" / ____|__   __|/\   / ____| |/ / ");
System.out.println("| (___    | |  /  \ | |    | ' /  ");
System.out.println(" \___ \   | | / /\ \| |    |  <   ");
System.out.println(" ____) |  | |/ ____ \ |____| . \  ");
System.out.println("|_____/   |_/_/    \_\_____|_|\_\ ");

Но так как каждое "\" должно быть "\\", это часто выглядит очень некрасиво в коде, и очень трудно найти / исправить ошибку в "шрифте". Есть ли способ сказать Java НЕ использовать escape-последовательности?

5 ответов

Решение

Нет, у Java нет ничего похожего на "дословные строковые литералы" C#. Если вы хотите сделать ASCII-изображение, попробуйте вместо этого поместить его в текстовый файл и загрузить его из кода.

Ненавижу заглядывать в эту ветку, но для всех, кто ищет это... Попробуйте использовать юникод!

Например: \u0092 = "\"

Прочитайте это "изображение" из файла, этот файл может быть в вашей библиотеке jar:)

Извини чувак. Такого животного не существует.

Возможно, немного поздно, но это для тех, кто все еще ищет решение;

Pattern.quote()может использоваться для игнорирования escape-последовательностей.

      System.out.println(Pattern.quote("|     |   ____    |       |        ______  "))
System.out.println(Pattern.quote("|     |  |        |       |       /      \ "))
System.out.println(Pattern.quote("|_____|  |__      |       |       |      | "))
System.out.println(Pattern.quote("|     |  |        |       |       |      | "))
System.out.println(Pattern.quote("|     |  |_____   |_____  |_____  \______/ "))
//I apologize for the rushed textblock

Больше примеров

Следует отметить, что escape-последовательности \Q и \E будут находиться в начале и конце вашей строки.

Другие вопросы по тегам