Java条件语句

时间:2012-09-05 05:56:01

标签: java

  

可能重复:
  Java String.equals versus ==

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

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");
    }
}

上面的代码没有显示任何错误,它没有显示“okay”&& “不好”的消息也是。我不确定我的逻辑有什么问题。

6 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

您应该在这里使用String.equals

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

否则,您要比较对象的身份而不是它们的语义。实际上,这里有两个单独的String,它们满足语义相等。

答案 2 :(得分:0)

或者如果您想使用==执行username.intern();那么您可以使用==

注意:仅限FYI推荐的approch。

答案 3 :(得分:0)

如@veer所说, 您可以使用equalsIgnoreCase / equals

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

或者

您可以使用compareToIgnoreCase / compareTo

if (username.compareTo("test")==0) { ... }

答案 4 :(得分:0)

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

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

 }
 else{

 }

答案 5 :(得分:0)

如果你这样做会有效:

import 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 结束输入。