被简单问题困扰,抢分者乱入,在线等!
JTextField tf=JTextField(10);
String str=tf.getText();
if(str!=null)
{
}
else
{
}
我想当tf里没有内容的时候,执行else里的语句,但是就算我在tf里不输入任何内容,str明明没任何东西,在if语句里判断str也不为空,所以if语句总是会被执行,,这是怎么回事???
如何可以解决这个问题???
分不够再加,多谢!!!
------解决方案--------------------if(str!=null && 0 != str.length())
------解决方案--------------------str明明没任何东西,在if语句里判断str也不为空,所以if语句总是会被执行,,这是怎么回事???
=======
没看懂你要问什么...
这里应该不是判断 str 为 null吧....
因为你已经对其初始化了
应该是 str!= " " 或用str字串长度来判断是否为空
------解决方案--------------------if(str!=null)
{
}
如果空的话,不是应该执行if语句么!!
要不空的时候执行else吧
------解决方案--------------------String str =null;
String str =String str=tf.getText();
如果不初始化,在你创建str的对象后,就会给str分配存储空间,而在这个存储空间中可能本来就存着数据,就把这个值赋给str。
------解决方案--------------------LZ条件写错了 不是str!=null
应该是!str.equals( " ")
因为即使在文本筐中不输入内容 str的值只会是空字符串 而不是null
空字符串和NULL要区分清楚
------解决方案--------------------if(str.length()> 0);即可
------解决方案--------------------if(str!=null || " ".equals(str))
------解决方案--------------------要区分null和 " "。
null表示一个对象是空的,如果对这个对象引用会出现
NullPointerException " "表示一个长度为0的字符串,这个对象是存在的,不是null。
tf.getText()返回的是文本字符串,永远不会出现null的。
想要确定用户没有输入,需要使用str.length()==0或者 " ".equals(str)就可以了。
------解决方案--------------------应该判断str是不是为空,不是null