Я использую фреймворк, который время от времени возвращает некорректные строки с «пустыми» символами.
"foobar", например, представлен как:
[, Е, о, о, Ь, а, г]
Первый символ НЕ является пробелом (''), поэтому System.out.printlin () будет возвращать "foobar", а не "foobar". Тем не менее, длина строки равна 7 вместо 6. Очевидно, что это делает большинство методов String (equals, split, substring, ..) бесполезными. Есть ли способ удалить пустые символы из строки?
Я пытался создать новую строку следующим образом:
StringBuilder sb = new StringBuilder();
for (final char character : malformedString.toCharArray()) {
if (Character.isDefined(character)) {
sb.append(character);
}
}
sb.toString();
К сожалению, это не работает. То же самое со следующим кодом:
StringBuilder sb = new StringBuilder();
for (final Character character : malformedString.toCharArray()) {
if (character != null) {
sb.append(character);
}
}
sb.toString();
Я также не могу проверить наличие пустого символа, подобного этому:
if (character == ''){
//
}
Очевидно, что с String что-то не так ... но я не могу изменить используемый фреймворк или ждать, пока они его исправят (если это баг в их рамках). Мне нужно обработать эту строку и продезинфицировать ее.
Есть идеи?