如何检查用户是否输入了适当的字符串? (Java)[duplicate]

问题描述 投票:0回答:1
package com.company;

import java.lang.String;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String str = "";
        do{
            Scanner input = new Scanner(System.in);
            System.out.print("Input: ");

            str = input.nextLine();
        }while(str != "key123");

        System.out.print("Good!");

    }
}

用户必须输入正确的密钥,但是代码不起作用,我不知道为什么?

屏幕截图:

enter image description here

java string java.util.scanner
1个回答
0
投票

==运算符始终在原始类型下始终正常工作。这是char,boolean,int double,float,byte,long,short。它不适用于String或Object等类。

而不是使用:object.equals(anotherObject);像这样

    String str = "";
    Scanner input = new Scanner(System.in);
    do {
        System.out.print("Input: ");
        str = input.nextLine();
    } while (!str.equals("key123"));

    System.out.println("Good!");
    System.out.println(str == "key123"); // false
    System.out.println(str.equals("key123")); // true

并且除非绝对必要,否则避免在每次迭代时在循环中创建一个新对象。创建对象需要占用内存。

© www.soinside.com 2019 - 2024. All rights reserved.