Processing中IF语句异常:内容长度一致的字符串判断不相等
问题分析与解决
核心原因
在Java(Processing基于Java)中,==用于字符串比较时,比较的是两个字符串对象的内存引用地址,而非字符串的实际内容。哪怕两个字符串的内容、长度完全一致,只要它们是不同的对象实例,内存地址就不相同,==判断就会返回false,进而进入else分支。
解决方法
将字符串比较的代码替换为equals()方法(专门用于比较字符串内容):
if(inStr.equals(heartbeat)) {
如果需要忽略大小写差异,可使用equalsIgnoreCase():
if(inStr.equalsIgnoreCase(heartbeat)) {
验证说明
你的控制台输出已证明两个字符串内容完全一致,但由于==的特性,导致判断不成立。替换为equals()后,就能正确识别内容匹配,进入Got here 11的分支逻辑。
内容的提问来源于stack exchange,提问作者XerXeX
相关产品推荐
相关产品推荐

