为了账号安全,请及时绑定邮箱和手机立即绑定

初学java,求问一个小问题

初学java,求问一个小问题

qq_以为世界它很美_0 2017-10-05 13:32:04
问题:定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串"@gameschool.com"代码: import java.util.*;class Internet{ private String ID,password,email; public Internet(){ } public void setInternet(String ID,String password,String email){ this.ID=ID; this.password=password; this.email=email; } public void getInternet(){ System.out.println(ID+","+password+","+email); }}public class Person{ public static void main(String[] args){ Scanner reader=new Scanner(System.in); String ID=reader.nextLine(); String password=reader.nextLine(); String email=reader.nextLine(); if(ID=="null"||password=="null") System.out.println("请输入用户信息!"); if(email=="null") System.out.println(ID+","+password+","+ID); Internet one=new Internet(); one.setInternet(ID,password,email); }}代码还没写完,我想先试试能否判断,结果if条件语句不能执行,想知道为什么,需要如何改呢?请大神求教!!!
查看完整描述

1 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

你是说 ID=="null"||password=="null" 这个条件判断有问题吗?

你是想判断 ID 和 password 是否为空字符串吗? 

比较字符串应该用 equals 方法,基本上不要用 ==。 而且"null"也不是空字符串,这是一个有四个字符 n u l l 的字符串。

可以这样 ID.equals("")

或者 Objects.equals(ID, "")

查看完整回答
反对 回复 2017-10-05
  • qq_以为世界它很美_0
    qq_以为世界它很美_0
    就是这个问题,万分感谢!!
  • onemoo
    onemoo
    像前面有人回答的那种把字符串字面量写在前面的写法("".equals(ID))是一种较为安全的习惯,这样可以避免ID是null的情形(对null调用函数会引起异常)。否则就要额外判断一下 ID!=null&&ID.equals("")。 不过我没有这样写是因为:你这里的ID这些变量之前都被nextLine()赋值过了,基本上不会是null,所以我才把变量写在equals前面。
?
望远

TA贡献1017条经验 获得超1032个赞

if(ID=="null"||password=="null")//这是在比较什么?
if("".equals(ID)||"".equals(password))//这样写试试,下同
    System.out.println("请输入用户信息!");
if("".equals(email))
     //缺省的email地址是用户ID加上字符串"@gameschool.com"
    //System.out.println(ID+","+password+","+email);//这里敲错了吧?
    email=ID+"@gameschool.com";


查看完整回答
2 反对 回复 2017-10-05
  • qq_以为世界它很美_0
    qq_以为世界它很美_0
    因为没学到字符串的判断。。然后就以为和C语言一样,见笑了。问题已经解决,感谢大神。。!
  • 望远
    望远
    慢慢来就好,加油,以后尽量不要这样写ID.equals(""),改成这个"".equals(ID)
  • onemoo
    onemoo
    另外我提醒下,C语言中判断字符串是否相同也不用==啊!
点击展开后面1
?
Developer_Zuck

TA贡献112条经验 获得超42个赞

初学java.建议将不同的类分不同文件写,这样层次更清晰,而且代码一目了然。还有,你能把代码格式化一下吗?control+shift+f,代码看着挺奇怪。

查看完整回答
1 反对 回复 2017-10-05
?
Developer_Zuck

TA贡献112条经验 获得超42个赞

你的那个判断用户跟密码的问题:
之前的引号需要去掉,并且加入空字符串的判断。
if(ID==null&&ID.equals("")&&password==null&&password.equals("")){
System.out.println("请输入用户信息!");
return;
}

你所采纳的那个答案本身没问题,但仅仅做了字符串的判断,如果什么都不输入呢?那么就是null,如果输入空格,就是“”,明白吗?
而且逻辑上面还要使用&&,因为如果仅仅只有用户或者密码,同样成立,那这样就不符合实际情况,只能说是一个残缺的用户信息……

问题很多,慢慢来吧……

查看完整回答
反对 回复 2017-10-05
  • qq_以为世界它很美_0
    qq_以为世界它很美_0
    我改完之后就对了呀。。。并且就是根据上面改的。。你看看(一脸懵逼啊。。。) import java.util.*; class Internet{ private String ID,password,email; public Internet(){ } public void setInternet(String ID,String password,String email){ this.ID=ID; this.password=password; this.email=email; } } public class Person{ public static void main(String[] args){ Scanner reader=new Scanner(System.in); String ID=reader.nextLine(); String password=reader.nextLine(); String email=reader.nextLine(); if(ID.equals("")||password.equals("")) System.out.println("请输入用户信息!"); else if(email.equals("")) System.out.println("用户ID:"+ID+",用户密码:"+password+",邮箱地址:"+ID+"@gameschool.com"); else System.out.println("用户ID:"+ID+",用户密码:"+password+",邮箱地址:"+email); Internet one=new Internet(); one.setInternet(ID,password,email); } }
  • qq_以为世界它很美_0
    qq_以为世界它很美_0
    import java.util.*; class Internet{ private String ID,password,email; public Internet(){ } public void setInternet(String ID,String password,String email){ this.ID=ID; this.password=password; this.email=email; } } public class Person{ public static void main(String[] args){ Scanner reader=new Scanner(System.in); String ID=reader.nextLine(); String password=reader.nextLine(); String email=reader.nextLine(); if(ID.equals("")||password.equals("")) System.out.println("请输入用户信息!"); else if(email.equals("")) System.out.println("用户ID:"+ID+",用户密码:"+password+",邮箱地址:"+ID+"@gameschool.com"); else System.out.println("用户ID:"+ID+",用户密码:"+password+",邮箱地址:"+email); Internet one=new Internet(); one.setInternet(ID,password,email); } }
  • qq_以为世界它很美_0
    qq_以为世界它很美_0
    在这里乱七八糟的,我写在自己里面的回复了。。你看看
点击展开后面4
  • 1 回答
  • 0 关注
  • 2643 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信