java程序解疑

来源:百度知道 编辑:UC知道 时间:2024/06/23 13:23:05
各位,在下运行此程序时,运行结果和我希望的完全不同,本想当输入"kill bill"时就输出"hi,"+name+",no problem.",如输入不是"kill bill"就输出"sorry,"+name+",I cant."但运行时,无论输入的WORK是什么,输出总是后一个.请各位大人解疑.谢谢.
import javax.swing.JOptionPane;
public class DialogTester {
public static void main(String[] args){
String name=JOptionPane.showInputDialog( "What is your name?");
String work=JOptionPane.showInputDialog( "hi,"+name+",What would you need?");
if(work=="kill bill"){
JOptionPane.showMessageDialog(null, "hi,"+name+",no problem.");
}else{
JOptionPane.showMessageDialog(null, "sorry,"+name+",I cant.");
}
System.exit(0);
}
}

用work.equals("kill bill")来判断是否相等,不要用==

==是判断两个字符串的引用是否相同
equals是判断两个字符串的引用是否相等

所有的类都继承自Object,equals()方法都是继承自Object,但在Object类中equals方法中也是用==来判断是否equals的

==是判断两个字符串地址是否相等
equals才是判断两个字符串是否值相等

楼上全对……