Java 在if语句中使用字符串和逻辑运算符
我是学Java的新手。我大约一周前开始学习,每天花大约10个小时学习,我不确定自己是否落后于“应该”的水平(我正在处理的另一个问题) 我知道我的代码可能不是最有效的,但我必须从某个地方开始,我从上周读到的大量信息中提取了大部分信息。现在,我正在尝试制作游戏或应用程序来帮助巩固编程概念。将我学到的知识用于实践,并使这些信息具有相关性 我的问题很重要,为什么我的“如果”语句直接指向“其他”呢Java 在if语句中使用字符串和逻辑运算符,java,string,Java,String,我是学Java的新手。我大约一周前开始学习,每天花大约10个小时学习,我不确定自己是否落后于“应该”的水平(我正在处理的另一个问题) 我知道我的代码可能不是最有效的,但我必须从某个地方开始,我从上周读到的大量信息中提取了大部分信息。现在,我正在尝试制作游戏或应用程序来帮助巩固编程概念。将我学到的知识用于实践,并使这些信息具有相关性 我的问题很重要,为什么我的“如果”语句直接指向“其他”呢 对于字符串比较,必须使用Object类的equals方法。 您的if语句将类似于-if(scanClass.
对于字符串比较,必须使用
Object
类的equals
方法。
您的if语句将类似于-if(scanClass.equals(“f”)…
请记住,
==
比较参考对象而不是实际对象。对于字符串比较,必须使用对象
类的等于
方法。
您的if语句将类似于-if(scanClass.equals(“f”)…
请记住,
=
比较的是引用对象,而不是实际对象。始终使用等于来比较字符串
- ==比较引用
- 另一方面,equals()比较这些值
if ((scanClass.equals("f") || (scanClass.equals("F")))
始终使用等于来比较字符串
- ==比较引用
- 另一方面,equals()比较这些值
if ((scanClass.equals("f") || (scanClass.equals("F")))
您应该使用
if语句中的scanClass.equalsIgnoreCase(“f”)
,因为=
运算符比较的是引用而不是值。您应该使用
scanClass.equalsIgnoreCase(“f”)
在if语句中,因为操作符比较引用而不是值。操作符==,测试两个对象引用变量是否引用对象的完全相同实例
方法.equals()测试被比较的两个对象是否相等,但它们不必是同一对象的完全相同的实例。所以
if ((scanClass == "f") || (scanClass == "F"))
计算结果为false,控制转到else块。运算符==,测试两个对象引用变量是否引用对象的完全相同实例
方法.equals()测试被比较的两个对象是否相等,但它们不必是同一对象的完全相同的实例。所以
if ((scanClass == "f") || (scanClass == "F"))
计算结果为false,控制转到else块。更好的方法是if(“f”.equals(scanClass)){}进一步改进它:if(“f”.equalsIgnoreCase(scanClass)…为您节省了两个比较中更笨重的方式。谢谢您,以及所有回答的人。对于这样一个noob问题,很抱歉,但我真的不记得看到过“equals”在我读过的任何在线文档中,尽管我可能弄错了。@Surlistyc如果你觉得你的问题得到了正确的回答,你可以通过点击下箭头下的右键来接受答案。@SajalDutta同意。:)更好的是如果(“f”.equals(scanClass)){}进一步改进:如果(“f”.equalsIgnoreCase(scanClass)…为您省去了两个比较中更笨重的方式。谢谢您,还有所有回答的人。对于这样一个noob问题,很抱歉,但我真的不记得看到过“equals”在我读过的任何在线文档中,尽管我可能弄错了。@Surlistyc如果您觉得您的问题得到了正确的回答,您可以通过单击向下箭头下的右标记来接受答案。@SajalDutta同意。:)在这个网站上,RPG标签指的是一种编程语言。使用前请阅读我们的标签信息。谢谢。在这个网站上,RPG标签指的是一种编程语言。使用前请阅读我们的标签信息。非常感谢。