Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';如果这个条件行得通,不是吗?_Java_Swing - Fatal编程技术网

Java 为什么';如果这个条件行得通,不是吗?

Java 为什么';如果这个条件行得通,不是吗?,java,swing,Java,Swing,我创建此代码是为了检查计算器的文本字段是否有任何内容。如果文本字段中存在内容,则应显示“。否则,它应该在文本字段中显示“0”。。问题是if条件的计算结果总是false private void dotActionPerformed(ActionEvent evt){ String dott=display.getText(); if(dott==null) { display.setText(display.getText()+"0."); }

我创建此代码是为了检查计算器的文本字段是否有任何内容。如果文本字段中存在内容,则应显示
。否则,它应该在文本字段中显示
“0”。
。问题是if条件的计算结果总是false

private void dotActionPerformed(ActionEvent evt){
    String dott=display.getText();
    if(dott==null)
    {
        display.setText(display.getText()+"0.");
    }
    else
    {
        display.setText(display.getText()+dot.getText());   
    }
}
我认为你可以做到:

if(dott.equals(""))

该字符串将为
,不为空。使用
dott.isEmpty()
查看
dott
是否没有内容。是另一篇文章,详细介绍了
.compareTo(“”
.isEmpty()之间的区别。

尝试以下字符串方法:

if(dott.isEmpty())
    //your code
或者,您也可以使用:

if(dott.compareTo("")==0)
    // your code
尝试以下方法:

 String dott = ...;
 dott.isEmpty();

但是您已经知道display.getText()是空的,那么为什么还要再次执行它呢?与“else”子句相同-您已经知道该值。所以你应该写:

String dott=display.getText();
if(dott.isEmpty()) {
    display.setText("0.");
} else {
    display.setText(dott+dot.getText());   
}
或者更简洁地说:

   String dott=display.getText();
   String text = dott.isEmpty() ? "0." : dot.getText();
   display.setText(text);
甚至:

   String dott=display.getText();
   display.setText( dott.isEmpty() ? "0." : dot.getText() );
如果(dott==null)替换为

if(点等于(“”)


如果需要,可以使用apache的
StringUtils
。链接:
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

  private void dotActionPerformed(ActionEvent evt){
        String dott=display.getText();
        if( StringUtils.isEmpty(dott))
        {
            display.setText(display.getText()+"0.");
        }
        else
        {
            display.setText(display.getText()+dot.getText());   
        }
    }

空文本字段返回
,而不是
null
null
getText
永远不会返回。用
if(dott.isEmpty())
替换
if(dott.isEmpty())
,你就可以走了。根据@zron的评论,在这种情况下,我怀疑它永远不会为null。
dott.isEmpty()
也应该有效。这主要是风格的问题。
   String dott=display.getText();
   display.setText( dott.isEmpty() ? "0." : dot.getText() );
  private void dotActionPerformed(ActionEvent evt){
        String dott=display.getText();
        if( StringUtils.isEmpty(dott))
        {
            display.setText(display.getText()+"0.");
        }
        else
        {
            display.setText(display.getText()+dot.getText());   
        }
    }