“”和“”有啥区别,我如何用字符来测试前者?

Posted

技术标签:

【中文标题】“”和“”有啥区别,我如何用字符来测试前者?【英文标题】:What is the difference between "" and " ", and how do I test the former in terms of a char?“”和“”有什么区别,我如何用字符来测试前者? 【发布时间】:2012-08-17 02:31:59 【问题描述】:

在 Java 中,“”(空引号)和“”(带单个空格的引号)之间有什么区别,我如何根据 char 测试前者?

【问题讨论】:

【参考方案1】:

"" 表示空字符串。 " " 为空,它包含一个空格字符。

你不能用char 来测试前者,因为没有字符:用String 来测试它:它是长度为零的StringString.equals("") 返回true 为空字符串。

或者对于char数组,空字符串对应长度为零的char数组,例如:

char noChars[] = new char[0];
String str = new String(noChars);
// now str is the empty String

【讨论】:

我尝试测试空字符 '\0' 但它似乎也不等同于空字符串。我还发现了这个answer,它解释了原因。【参考方案2】:

"" - 是一个空字符串,它的长度为零,请尝试在其上调用length() 方法。

" " - 1 个空格的字符串。

【讨论】:

【参考方案3】:
“” - Empty Sting - String with 0 length
“ ” - single space - String with 1 length

【讨论】:

【参考方案4】:

""" " 都是长度分别为 0 和 1 的字符串对象。 以下是它们以 char 原语表示的内容:

"" - empty char[] array
" " - char[]  ' '  :- Char aray with single char entry

比较字符串的内容时最好使用String.equals。不过这里只需要检查length()

【讨论】:

以上是关于“”和“”有啥区别,我如何用字符来测试前者?的主要内容,如果未能解决你的问题,请参考以下文章

subprocess.call() 和 subprocess.Popen() 之间有啥区别使 PIPE 对前者的安全性降低?

subprocess.call() 和 subprocess.Popen() 之间有啥区别使 PIPE 对前者的安全性降低?

HTTP 和 HTTPS 的 REST API 测试有啥区别。使用 RESTassured 测试来测试 HTTPS 需要啥额外的东西

hadoop和spark的都是并行计算,有啥相同和区别?

回文排列和排列有啥区别? [关闭]

这两个字符串有啥区别?