你能告诉我在这个程序中我做错了吗?
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
/*<Applet code="kk" height=400 width=400></applet>*/
public class kk extends Applet implements ActionListener
{
Button b;
TextField t;
String str1,str2;
public void init()
{
b=new Button("submit");
t=new TextField(20);
add(t);
add(b);
b.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
try
{
str2="mohit";
str1=t.getText();
if(str1==str2)
{
System.out.println("matched");
}
else
{
System.out.println("not matched");
}
}
catch(Exception e)
{
System.out.println("Exception caught ");
}
}
}
Run Code Online (Sandbox Code Playgroud)
不知道为什么str1和str2不匹配.
Jon*_*eet 16
是 - 当您想要比较字符串是否相等时,您正在比较str1和str2是否引用完全相同的字符串对象:
if (str1.equals(str2))
Run Code Online (Sandbox Code Playgroud)
当应用于引用类型的变量时,==运算符将始终比较引用而不是执行任何特定于类型的相等性检查.
你检查身份(==),但实际上你想检查相等(.equals()).
这是必要的,因为,就像在现实世界中,两件事看起来可能是平等的.
如果现在需要两个变量引用同一个对象,请使用==.否则,如果您只想知道,如果两个变量引用具有相同状态(也称为"内容")的对象,请使用该equals方法.
| 归档时间: |
|
| 查看次数: |
3671 次 |
| 最近记录: |