判断用户名密码是否为空,是否一致

判断用户名密码是否为空,是否一致

老师,判断用户名是否为空要怎么写啊?要用if(one.getUsername() == “ ”)还是if(one.getUsername() == null)啊?为什么我用第二种null最后会直接输出null呢?java中没有null关键字吗?还有如果用一个字符串变量接收每次要打印的提示语句,那最后的输出值只是最后赋予给字符串变量的语句啊,前面如果有输出就看不到了啊



public class UserManager {

String messages;

    // 用户信息验证的方法

    public String checkUser(User one, User two) {

       // 判断用户名是否为空,是否一致

if(one.getUsername() == "" || two.getUsername() == "") {

messages = "用户名为空";

// System.out.println("用户名为空");

}else if(one.getUsername().equals(two.getUsername())) {

messages = "用户名一致";

// System.out.println("用户名一致");

}else {

messages = "用户名不一致";

// System.out.println("用户名不一致");

}

    // 判断密码是否为空,是否一致

if(one.getPassword() == null || two.getPassword() == null) {

messages = "密码为空";

// System.out.println("密码为空");

}else if(one.getPassword().equals(two.getPassword())) {

messages = "密码一致";

// System.out.println("密码一致");

}else {

messages = "密码不一致";

// System.out.println("密码不一致");

}

return messages;

    }


}

public class Test1 {
	// 测试方法
	public static void main(String[] args) {
		//实例化对象,调用相关方法实现运行效果
		User one = new User("Lucy","123456");
		one.Show();

		User two = new User("Mike","1234569");
		two.Show();
		System.out.println("============");
		UserManager um = new UserManager();
		System.out.println(um.checkUser(one, two));
		System.out.println(um.checkUser(one, two));

	}

}


正在回答

登陆购买课程后可参与讨论,去登陆

3回答
public String checkUser(User one, User two) {
       String str="";
        // 判断用户名是否为空,是否一致
        if (one.getUsername() == "" || two.getUsername() == "") {
            str+= "用户名为空";
        } else if (one.getUsername().equals(two.getUsername())) {
           str+= "用户名一致";
        } else {
            str+= "用户名不一致";
        }
        return str;
}

类似这种,可以试试

  • 无谓艰苦 提问者 #1
    非常感谢!
    2017-12-11 21:56:21
提问者 无谓艰苦 2017-12-10 09:41:10
public class UserManager {
	String messages;
	// 用户信息验证的方法
	public String checkUser(User one, User two) {
		// 判断用户名是否为空,是否一致
		if (one.getUsername() == "" || two.getUsername() == "") {
			messages = "用户名为空";
		} else if (one.getUsername().equals(two.getUsername())) {
			messages = "用户名一致";
		} else {
			messages = "用户名不一致";
		}
		// 判断密码是否为空,是否一致
		if (one.getPassword() == null || two.getPassword() == null) {
			messages = "密码为空";
		} else if (one.getPassword().equals(two.getPassword())) {
			messages = "密码一致";
		} else {
			messages = "密码不一致";
		}
		return messages;
	}
}
public class Test1 {
	// 测试方法
	public static void main(String[] args) {
		//实例化对象,调用相关方法实现运行效果
		User one = new User("Lucy","123456");
		one.Show();
		User two = new User("Mike","1234569");
		two.Show();
		System.out.println("============");
		UserManager um = new UserManager();
		System.out.println(um.checkUser(one, two));

	}

}

http://img1.sycdn.imooc.com//climg/5a2c8fda0001d53302720390.jpg

老师  我的意思是这样的 我是按照您说的 定义了一个字符串变量,用来接收每种情况的提示信息,然后返回这个字符串变量,可是如果用户名和密码都不一致的情况下,就只返回密码不一致的提示信息,前面用户名不一致的提示信息就被覆盖了!!这个怎么解决!如果用返回值的方法。

  • 可以试试在方法开始定义一个字符串,然后通过字符串拼接的方式依次添加将错误提示添加在字符串上,最后将完整的错误信息字符串返回到调用处
    2017-12-10 18:24:51
  • 提问者 无谓艰苦 回复 喜欢做梦的鱼 #2
    请赐教怎么拼??我是实在想不出来怎么拼接!我也是在方法开始处定义的字符串,不管怎么拼最后只有一个返回值,就只能显示一个错误提示啊!就比如用户名和密码都不一致的时候,怎么用返回值输出:用户名不一致 密码不一致!
    2017-12-10 21:28:54
好帮手慕珊 2017-12-10 08:55:50

http://class.imooc.com/course/qadetail/31187

在这个链接中回复了你的问题啦,可以去看看。

另外,之所以输出结果为null,应该是if-else里面的赋值都没有执行到,导致messages依旧为初始值null导致的。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师