空字符串末尾有“\u0000”

Empty String has "\u0000" at the end

我从服务器收到字符串响应,应该是 1 space。值如下所示:

我已经在 Android 上使用了 trim()TextUtils.isEmpty(),但字符串描述看起来仍然不为空。我检查过它是否等于“”或“”,但不是。 如何检查这个特殊字符串?

我已经尝试替换字符串末尾的 \u0000 个字符,看起来也不起作用。

尝试这样做

input = input.replaceAll("\s+", "");

这样做是遍历整个字符串,并删除所有包含 { ' ', '\r', '\t', '\n' ...}

的空白字符

它不能保证将 ALL 全部删除 encodings/charsets,但它通常可以完成(大部分)工作。如果有更多 special/missing 个案例,请将它们写下来,我们会将它们视为例外,而不是将它们集中在 'catch-all' 解决方案中。

此解决方案只会删除字符串中的所有空白和空格。一定要尝试 trim()ming 和这个,看看它离你想要的最终结果有多近。

Char 160 在 UTF-8 字符集中是 NO-BREAK SPACE。您收到的 string 不为空,但包含有效字符。

在您将此视为空之前的第一件事 string 是检查服务器试图通知您的内容。

如果您仍然想删除它,那么除了替换 \u0000 之外还要 replace 这个字符。

像这样的事情会做:

description = description.replace(new String(new char[] {160}), "");