RegEx не удаляет символы из строки - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть строка, состоящая из нескольких запятых, а также нескольких кодов форматирования цвета в виде символа «§», а затем символа (например, «§a§6Текст, здесь» должен стать «Текст здесь»). Я хочу удалить все запятые, но также и все цветовое форматирование. Я использовал этот код, но когда он запускается, он не завершает удаление форматирования, он становится неким загадочным символом, который меняется в зависимости от того, какой текстРедактор Я открываю его («�» в notepad / ++, «ï¿½f�f�» в Excel).

Я использую Java 11, и я проверил свой RegEx в notepad ++, онкажется, работает. На данный момент мой код успешно удаляет запятые, но не форматирование цвета.

for (String entry : lineEntries) {
                String entryx = entry.replace(",", "");
                entryx = entryx.replace("§.", "");
                refinedEntries.add(entryx);
            }

Если бы я вводил "§f§f§6Spicy, Special", я бы хотел, чтобыreturn "SpicySpecial"

Редактировать: исправлена ​​отдельная ошибка, которая все еще была довольно серьезной, но не решала проблему.

1 Ответ

1 голос
/ 03 ноября 2019

Код не работает, потому что в

               String entryx = entry.replace(",", "");

вы удаляете каждую запятую из записи, и она возвращает результат в entryx, а после вы должны использовать результат первой операции, которая является entryxудалить каждый специальный символ. Итак, ваш код должен быть таким:

for (String entry : lineEntries) {
            String entryx = entry.replace(",", "");
            entryx = entryx.replace("§", "");
            refinedEntries.add(entryx);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...