使用扫描器后在Java中使用字符串的条件
不管输入是什么,它总是给出第二个条件。userName==Charles是这样做的正确方法吗?还是我需要别的什么使用扫描器后在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(
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")