Java条件语句

Java条件语句,java,Java,可能重复: 我正在使用jcreator来练习java语言。我提出了一个条件语句,其中如果用户输入为=“test”,它将打印一条“ok!”消息。这是我的代码: class conditional { public static void main (String[] args) { Scanner user_input = new Scanner(System.in); String username; System.out.prin

可能重复:

我正在使用jcreator来练习java语言。我提出了一个条件语句,其中如果用户输入为=“test”,它将打印一条“ok!”消息。这是我的代码:

class conditional {

    public static void main (String[] args) {

        Scanner user_input = new Scanner(System.in);

        String username;
        System.out.print("username: ");
        username = user_input.next();
            if (username == "test") {
                System.out.println("okay");
                    }
                    else {
                                    System.out.println("not okay");
    }
}
上面的代码没有显示任何错误,也没有显示“OK”和“not okay”消息。我不确定我的逻辑有什么问题。

你应该在这里使用

否则,您将比较对象的标识,而不是它们的语义。实际上,这里有两个独立的
字符串,它们满足语义平等性。

您应该在这里使用


否则,您将比较对象的标识,而不是它们的语义。事实上,这里有两个独立的
字符串
,它们满足语义平等性。

字符串应使用
.equals
而不是
=
进行比较。这是所有非原始比较的情况。例如,您可以将两个
int
字段与
=
进行比较,但由于字符串不是基本的,
.equals
是正确的选择

if (username.equals("test")) {

应该使用
.equals
而不是
=
来比较字符串。这是所有非原始比较的情况。例如,您可以将两个
int
字段与
=
进行比较,但由于字符串不是基本的,
.equals
是正确的选择

if (username.equals("test")) {

或者如果您想使用
==
do
username.intern()然后您可以使用
==


注意:不建议仅用于仅供参考。

或者如果您想使用
==
do
username.intern()然后您可以使用
==

注意:这不是仅供参考的推荐方法。正如@veer所说, 如果(username.equals(“test”){…}

您可以使用/

正如@veer所说, 如果(username.equals(“test”){…}

您可以使用/


要比较字符串,需要使用
.equals()
方法,如果需要忽略字符串中字母的大小写,也可以使用
.equalsIgnoreCase()


要比较字符串,需要使用
.equals()
方法,如果需要忽略字符串中字母的大小写,也可以使用
.equalsIgnoreCase()


如果您这样做,它将起作用:

导入java.util.Scanner

class Conditional {
    public static void main(String[] args) {
        Scanner user_input = new Scanner(System.in);
        String username;

        System.out.print("username: ");
        username = user_input.next();

        if (username.equals("test")) {
            System.out.println("okay");
        } else {
            System.out.println("not okay");
        }

        user_input.close();
    }
}
几句话:

  • 类名应以大写字母开头
  • 使用
    equals
    比较
    String
    s
  • 您声明根本不打印任何结果。您必须在控制台中单击以键入答案,并用Enter结束输入

如果您这样做,它将起作用:

导入java.util.Scanner

class Conditional {
    public static void main(String[] args) {
        Scanner user_input = new Scanner(System.in);
        String username;

        System.out.print("username: ");
        username = user_input.next();

        if (username.equals("test")) {
            System.out.println("okay");
        } else {
            System.out.println("not okay");
        }

        user_input.close();
    }
}
几句话:

  • 类名应以大写字母开头
  • 使用
    equals
    比较
    String
    s
  • 您声明根本不打印任何结果。您必须在控制台中单击以键入答案,并用Enter结束输入

始终使用.equals()表示字符串==表示参考可比性始终使用.equals()表示字符串==表示参考可比性不
username.intern()--这是一条语句。您需要在比较中使用
username.intern()
的结果。也就是说,内部化的字符串存储在堆的一个特殊部分,不需要进行垃圾收集。因此,如果
字符串
内部包含对较大的
char[]
的引用(通常是
String.substring
results),您可能会在未意识到的情况下浪费大量内存。而不是
username.intern()--这是一条语句。您需要在比较中使用
username.intern()
的结果。也就是说,内部化的字符串存储在堆的一个特殊部分,不需要进行垃圾收集。因此,如果
字符串
内部包含对较大的
字符[]
(通常是
字符串.substring
结果)的引用,则可能会在未意识到的情况下浪费大量内存。何时以及如何使用==?何时以及如何使用==?
class Conditional {
    public static void main(String[] args) {
        Scanner user_input = new Scanner(System.in);
        String username;

        System.out.print("username: ");
        username = user_input.next();

        if (username.equals("test")) {
            System.out.println("okay");
        } else {
            System.out.println("not okay");
        }

        user_input.close();
    }
}