java,scanner输入的字符串,如输入yes判断却不等于yes

贴一贴

 package test;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         Scanner scan=new Scanner(System.in);
         System.out.println("input now");
         String str=scan.next();
         if(str != "yes")
             System.out.println(str);
    }

}

我输入就是输入yes的,下面的if判断就是不相等,应该是scan.next()的返回值中带了什么转义字符吧,这个问题怎么解决?有什么方法能查看到其中的转义字符呢?

String是个类,用==或!=比较是比较的内存地址,应该使用equals方法进行比较

 if(!str.equals("yes"))

前面人回答的不错。equals才是比较内容是否相同