可能重复:
如何比较Java中的字符串?
所以,我对测试运算符和字符串有疑问.我正在尝试编写一个程序,用于输入"男孩"或"女孩"的用户输入.当用户输入"男孩"时,输出应为"你是个男孩".当用户输入"女孩"时,输出应为"你是女孩".
但是,当我编译并运行程序时,无论我输入什么,输出总是"你是女孩".
这是因为字符串没有像整数那样的实际值,因此测试运算符不能用来比较它们吗?
另外,有没有像java中的python的断言函数?
import java.util.Scanner;
class apples{
public static void main(String args[]){
System.out.println("Are you a boy or a girl?");
Scanner lalala = new Scanner(System.in);
String text = lalala.nextLine();
if (text == "boy"){
System.out.println("You are a boy.");
}
else{
System.out.println("You are a girl.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢〜
使用
text.equals("boy")
Run Code Online (Sandbox Code Playgroud)
代替
if (text == "boy")
Run Code Online (Sandbox Code Playgroud)
原因是,在Java中,==总是只比较两个引用(对于非基元,即) - 即它测试两个操作数是否引用同一个对象.
但是,可以覆盖equals方法 - 因此两个不同的对象仍然可以相等.
但更好的选择是使用equalsIgnoreCase,原因是用户可以输入boy或BOY或Boy或任何其他组合.equalsIgnoreCase方法只是忽略大小写并比较两个字符串.
text.equalsIgnoreCase("boy")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
343 次 |
| 最近记录: |