我从服务器得到字符串响应,应该是1个空格。值如下所示:空字符串在末尾有“ u0000”
我用trim()
,TextUtils.isEmpty()
在Android,但字符串描述看起来还是不为空。我检查过它是否等于“”或“”,但事实并非如此。 我该如何检查这个特殊的字符串?
我试图在字符串的末尾替换\u0000
字符,看起来不工作太多。
我从服务器得到字符串响应,应该是1个空格。值如下所示:空字符串在末尾有“ u0000”
我用trim()
,TextUtils.isEmpty()
在Android,但字符串描述看起来还是不为空。我检查过它是否等于“”或“”,但事实并非如此。 我该如何检查这个特殊的字符串?
我试图在字符串的末尾替换\u0000
字符,看起来不工作太多。
尝试这样做
input = input.replaceAll("\\s+", "");
这样做是什么,走通整个字符串,并删除所有空格字符,其中包括{ ' ', '\r', '\t', '\n' ...}
,并不能保证去除ALL了他们在所有编码/字符集,但它通常会完成(大部分)工作。如果还有更多特殊/失踪案件,请将它们写下来,我们会将它们视为例外情况,而不是将它们包含在“全面解决方案”中。
该解决方案将删除字符串中的所有空格和空格。请尝试trim()
ming和这看看有多接近,让你达到预期的最终结果。
char 160是NO-BREAK SPACE
in UTF-8
字符集。您收到的string
不是空的,但包含有效的字符。
在你认为这是空的string
之前的第一件事是检查服务器试图告诉你什么。
如果你还想删除它,那么除了替换\u0000
也replace
这个字符。
像这样的事:
description = description.replace(new String(new char[] {160}), "");
这也适用,所以如果我用32个而不是160个以下的\ u0000空终止符,'trim()'会正常工作吗? –
32是空间,修剪将起作用。 – ata
您是否尝试过'描述= description.replaceAll( “\\ S +”, “”);'? – Shark
@Shark似乎这个工作,为什么? –
'\ u0000'只是null结束符,它应该被'.trim()'或'whitespace regex i'建议去掉' – Shark