JAVA if语句问题
可能重复:JAVA if语句问题,java,Java,可能重复: 我使用java中的if语句通过询问此人是男孩还是女孩来确定此人是男性还是女性。这是一个相当愚蠢的声明,但我的疑问是,无论我输入什么,我总是得到“你是一个女性!”这是相当恼人的。你能帮忙吗?这是密码 import java.util.Scanner; class ifstatement { public static void main( String args[] ) { System.out.print( "please enter boy or gi
我使用java中的if语句通过询问此人是男孩还是女孩来确定此人是男性还是女性。这是一个相当愚蠢的声明,但我的疑问是,无论我输入什么,我总是得到“你是一个女性!”这是相当恼人的。你能帮忙吗?这是密码
import java.util.Scanner;
class ifstatement {
public static void main( String args[] ) {
System.out.print( "please enter boy or girl as an input:" );
Scanner x = new Scanner( System.in );
String a = x.nextLine();
if ( a == "boy" ) {
System.out.print( "You are a male" );
}
else {
System.out.print( "You are a female!" );
}
}
}
使用equals()
方法比较String
equals()
比较对象
=
比较参考值
使用
这将比较字符串的“boy”
实例与a
见
equals()
方法比较字符串
equals()
比较对象
=
比较参考值
使用
这将比较字符串的“boy”
实例与a
见
==
比较使用对象引用,无论两个对象是否指向相同的内存位置.equals()
在对象类中执行相同的操作,但是字符串类会覆盖它以进行值比较。==
比较使用对象引用,无论两个对象是否指向相同的内存位置.equals()
在对象类中执行相同的操作,但是字符串类会覆盖它以进行值比较。操作符检查对对象的引用是否相等。在测试字符串相等性时,这是不够的。在String.equals()方法
中进行引用相等性测试,以及其他检查:
public boolean equals(Object anObject) {
if (this == anObject) { // Reference equality
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) { // Are the strings the same size?
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++]) // Compare each character
return false;
}
return true;
}
}
return false;
}
=
操作符检查对对象的引用是否相等。在测试字符串相等性时,这是不够的。在String.equals()方法
中进行引用相等性测试,以及其他检查:
public boolean equals(Object anObject) {
if (this == anObject) { // Reference equality
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) { // Are the strings the same size?
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++]) // Compare each character
return false;
}
return true;
}
}
return false;
}
如果你说:
if ("boy".equals(a)){
System.out.print("You are a male");
} else if ("girl".equals(a)){
System.out.print("you are a female!");
{ else {
System.out.print("invalid response!");
}
这会解决你的问题。处理字符串时,应始终使用.equals()比较精确值。“==”操作符通常比较两个对象是否指向内存中的同一位置。因为字符串是一个对象,所以它们不一样。如果你说:
if ("boy".equals(a)){
System.out.print("You are a male");
} else if ("girl".equals(a)){
System.out.print("you are a female!");
{ else {
System.out.print("invalid response!");
}
这会解决你的问题。处理字符串时,应始终使用.equals()比较精确值。“==”操作符通常比较两个对象是否指向内存中的同一位置。因为字符串是一个对象,所以它们是不同的。1。中的java对象使用.equals()方法进行比较,而字符串是java中的对象。
2.使用
a.equals(“boys”)
,这将为您提供正确答案。1.在中,使用.equals()方法比较java对象,字符串是java中的对象。
2.使用
a.equals(“男孩”)
,如果你不关心这个案例,这将给你正确答案。…和equalsIgnoreCase()。我不明白。请你写那行代码好吗?如果你不关心这个案子,请写equalsIgnoreCase()。我不懂。请你写那行代码好吗?当你做a==“boy”
时,你是在测试a是否与字符串“boy”
完全相同的实例,而不是字符串是否包含相同的字符。当你做a==“boy”
时,你是在测试a是否与字符串“boy”
完全相同的实例,不管字符串是否包含相同的字符。非常感谢!你的回答是最有用的。非常感谢!你的回答很有帮助