日期:2014-05-20  浏览次数:20591 次

被简单问题困扰,抢分者乱入,在线等!
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