удаление нулевых символов из строки Android - PullRequest
2 голосов
/ 28 декабря 2011

В моем проекте Android я хочу прочитать структуру данных из файла.Поле предположить «имя», которое имеет максимум 32 символа.В большинстве случаев поле «имя» содержит ограничение меньше максимального.Некоторые нежелательные символы (я думаю, «ноль») заполнены данными.Я использовал метод «Trim» для удаления, но ничего не произошло.Мне нужны только достоверные данные для обработки, как я могу решить эту проблему?

Ответы [ 4 ]

4 голосов
/ 28 декабря 2011

Используйте регулярные выражения для замены непечатаемых символов.

String string=line.replaceAll("[^\\p{Print}]","");
1 голос
/ 28 декабря 2011

Проверьте, является ли значение ascii символа больше 0, чтобы проверить, является ли символ нулевым

Как удалить нулевое значение из строки Android

String str = "abc def";
            StringBuffer sb = new StringBuffer();
            byte[] byteArray = str.getBytes();
            for(byte bytedata:byteArray){
                if(bytedata>0){
                    sb.append((char)bytedata);
                }
            }
            str = sb.toString();
            System.out.println("..."+str);
0 голосов
/ 28 декабря 2011

Если у вас есть поле имени, которое является полностью нулевым, просто проверьте, является ли строка == нулевой.

Если вы хотите проанализировать одну строку, которая содержит, например, пробелы, используйте jsut:

String string = "a b c d";
string.replaceAll(" ","");

Это можно использовать для любого другого символа. Помните, что для этого вы должны использовать RegEx.

0 голосов
/ 28 декабря 2011

Если символ 0 добавляется в конец строки, просто найдите его первый индекс в строке и подстроку до этого индекса:

int nullCharIndex = s.indexOf((char) 0);
if (nullCharIndex >= 0) {
    s = s.substring(0, nullCharIndex);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...