Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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 - Fatal编程技术网

使用扫描器后在Java中使用字符串的条件

使用扫描器后在Java中使用字符串的条件,java,Java,不管输入是什么,它总是给出第二个条件。userName==Charles是这样做的正确方法吗?还是我需要别的什么 import java.util.Scanner; public class Name_input { public static void main(String[] args) { Scanner input = new Scanner(System.in); String userName = input.next(

不管输入是什么,它总是给出第二个条件。userName==Charles是这样做的正确方法吗?还是我需要别的什么

import java.util.Scanner;
public class Name_input {

      public static void main(String[] args) {
           Scanner input = new Scanner(System.in);

            String userName = input.next();
            System.out.println(userName);

            if (userName == "Charles")
            {
                System.out.println("Correct Name");
            }       
            else if (userName != "Charles")
            {
                System.out.println("Incorrect Name");
            }       
      }

}
userName==Charles是这样做的正确方法吗

不,您不能使用==来比较字符串

相反,你应该使用等号。。。方法:

注:我颠倒了比较顺序。如果用户名为空,这将阻止NPE

System.out.printlname

这是否显示了预期值?您需要使用修剪方法吗

else if (userName != "Charles")

此外,没有必要使用else if。名字要么是Charles,要么不是,所以你不需要额外的if语句。

你不能用==use.equals来比较字符串的相等性。看不清楚为什么你得到了所有的反对票,我认为你的答案非常棒。@RobOhRob可能有人在推荐一个非常高的代表性用户回答一个明显的错误。更多的是原则而不是答案的质量。谢谢你的回答,我真的很感激。@J.M.C.B,很高兴它有帮助。不要忘记点击复选标记接受答案,这样人们就知道问题已经解决了。
else if (userName != "Charles")