当字符串仅包含空白字符(例如:space,tab,newline char)时,x == !x
将返回true
。
示例:
"\t\n\r" == !"\t\n\r" // true
这是因为与==
比较时,只有空白字符的字符串会转换为0
,
但对于!
,"\t\n\r"
被视为非空字符串,因此!"\t\n\r"
为false
,
0 == false
返回true。
问题是,当x == !x
返回true时,这是唯一的情况(字符串只有空白字符)吗?
还有其他任何例子吗?
受@Ted Hopp的回答启发:
除了空字符串""
之外的每个字符串都可以转换为0使x == !x
成立。
示例:
"0.0" == !"0.0"
"608E-4234" == !"608E-4234"
答案 0 :(得分:4)
这也是true
:
"0" == !"0"
其他情况类似 - 强制转换为int
时评估为0的任何非空字符串都适用于x == !x
。
答案 1 :(得分:0)
这也是如此
" " == !" "
即使" "
也可以投放到0