这是为什么???
public class test4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("请输入姓名:");
char name = input.next().charAt(0);
System.out.print("请输入密码:");
int pass = input.nextInt();
if (name == '青' && pass == 123 ) {
System.out.println("欢迎你回来青!");
} else {
System.out.println("对不起,你不是青!");
}
}
}
这个程序这样写没有问题;输入青和123,得到结果“欢迎你回来青”
但是 我之前name定义的是string型的,代码如下:
Scanner input = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = input.next();
System.out.print("请输入密码:");
int pass = input.nextInt();
if (name == "青" && pass == 123 ) {
System.out.println("欢迎你回来青!");
} else {
System.out.println("对不起,你不是青!");
}
}
这样的话,程序没有显示错误,但是输入青和123,结果不正确,总是"对不起,你不是青!"
是条件 name == "青" 有问题 还是别的啥问题啊 求教各位大神 新手菜鸟再次膜拜
string
input
class
------解决方案--------------------把if 判断换成
if (name.equals("青") && pass == 123 )
就不会出现你所说的问题了。
关于String对象 equals 与 == 比较的问题?
就是内容与值的比较。
------解决方案--------------------一个是字符型,基本数据类型;'青'
一个是字符串型,是复杂数据类型;"青"
上下两者完全不同的概念
------解决方案--------------------一个是简单类型,一个是String类型,操作有区别的
------解决方案--------------------用equals进行字符串比较