急!!!关于java的接收问题!!!

来源:百度知道 编辑:UC知道 时间:2024/06/15 16:18:39
import java.util.Scanner;
public class Operating1{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入用户名:");
String qing = input.next();
System.out.println("请输入密码:");
int num = input.nextInt();

if(qing == "青" && num == 123)
{
System.out.println("欢迎你,青");
}else{
System.out.println("对不起,你不是青");
}

}
}

这个是我写的
没有错
可当我调试的时候输入: 青 和 123 的时候
它却显示 对不起 你不是青....
我已经彻底.无语了.
麻烦会的大哥大姐加我的Q下
250577263
急死啦~~~

请看程序片段,这一行:

if(qing == "青" && num == 123)

字符串的比较,请用equals方法,而不要用==,修改成这样:

if (qing.equals("青") && num == 123)

就可以了,解释一下,qing是一个字符串,比如它的内存地址为a,而“青”是一个匿名的字符串,假设系统分配给它的内存地址为b,用qing == "青",其实上,是将内存地址a和b作比较,这样比较无论你输入什么,一定是false,系统内存一个地址不可能保存两个变量。而用equals方法做的比较,就是实际意义上的字符串做比较。

中文问题啊!你需要将你输入的字符串进行转换

"if(qing == "青" && num == 123) "
if判断有误,字符串(内容)相等用equals()方法。
改为下面的:
if(qing.equals( "青") && num == 123)

if(qing.equals("青") && num == 123)
这样才可以,呵呵