判断字符串为空?看看代码哪里错了

public static void main(String[]args){
    Scanner scanner=new Scanner(System.in);
    String str=scanner.next();
    if(str.equals(str)|| str==null)
        System.out.print(true);
    else{
        System.out.print(false);
    }
}

题目要求:输入一个字符串str,判断是否为空。如果为空打印true,否则打印false

如果str为空你直接.equals就会报错,只写null == str 就可以

改成这样试试看: 

public static void main(String[]args){
    Scanner scanner=new Scanner(System.in);
    String str=scanner.next();
    if(str==null || str.equals(''))
        System.out.print(true);
    else{
        System.out.print(false);
    }
}

 

 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        if(str!=null&&str.length()>0){
            System.out.println("您输入的不为空,值为:"+str);
            System.out.print(true);
        }else{
            System.out.println("您输入的值为空");
            System.out.print(false);
        }

    }

 

if(str.equals(str)|| str==null)  这一行  第一个判断绝对会为true 所以不管怎么样都是打印true

 

把next()换成nextLine()

上面那个兄弟说的很对,把next()换成nextLine()(来源:404警告),你之前的程序输入不了空格和null;
if(str.equals(str)|| str==null)这句代码的意思是,str等于str或者str等于null
public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String str=scanner.nextLine();
        System.out.println("str = " + str);
        if(null == str || " ".equals(str)){
            System.out.print(true);
        }else{
            System.out.print(false);
        }
    }

 

 

  public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String str=scanner.nextLine();
        if("".equals(str)){
            System.out.print(true);
        }else{
            System.out.print(false);
        }
    }