“”和“”有啥区别,我如何用字符来测试前者?
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
来测试它:它是长度为零的String
,String.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 需要啥额外的东西