如何检查变量是否为空?

3

我知道这个不起作用,但是我如何知道用户是否添加了至少一个字符?

public class Program
import java.util.Scanner;
{
public static void main(String[] args) {
    Scanner a = new Scanner(System.in);
    String b = a.nextLine();

//I know this doesnt work but how can I know if the user added even one char?
    if (b!=null){
    System.out.println(b);
}
}
}

1
您可以检查String.lengthString.isEmpty(),这相当于检查长度是否为0。 - Fildor
b.isEmpty()nextLine() 永远不会返回 null。 - Andy Turner
请注意空格也算长度。因此,如果您实际上想检查“非空格字符”,那么需要付出更多的努力。另请参阅:https://dev59.com/0nA75IYBdhLWcg3wg5fs#3247081 - Fildor
2个回答

6

为什么你会建议使用 equals("") 而不是 StringisEmpty(),这让我感到困惑。 - Sync
因为你可以直接使用来自父类Objectequals(""),但你是对的,最好使用isEmpty(),因为"".equals()的主要优点是你不需要进行空值检查(equals会检查其参数并在其为空时返回false),而你似乎不关心这一点。如果你不担心b为空(或者以其他方式进行检查),我肯定会使用.isEmpty();它清楚地显示了你正在检查什么,你关心的是b是否为空,而不是它是否等于空字符串。 - SF..MJ
你的回答主张使用.equals("")而不是"".equals(s)。它也没有包括使用"".equals(s)的优点。你是否期望读者自然而然地理解你的回答,而不需要阅读评论?我仍然认为这是一个糟糕的回答。 - Sync
我不是在告诉你它的优点,而是在告诉你我们可以检查的方式有多少种...所以.equals()也是其中之一。 - SF..MJ

0

你可以这样做

if (!b.isEmpty()) {
  System.out.println(b);
}

2
b != null 是多余的。 - Andy Turner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接