空字符串末尾有“\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}), "");
我从服务器收到字符串响应,应该是 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}), "");