1

私の 2 番目のスキャナー入力は必要に応じて保存されますが、それでも correctString == stringValue を比較する if 条件は実行されません。手伝ってくれる。

{

static String stringValue = "A";
public static void main(String[] args) {
    int time;
    time = speedType();
    //System.out.println(time);
}
private static int speedType() {
    System.out.println("Let's play a game\nHow fast can you type \"I type very quickly\" \nPress Enter then type the statement and then press Enter again");
    Scanner scanner = new Scanner (System.in);
    String string = scanner.nextLine();
    if(string.equals("")){
        Date startTime = new Date();
        System.out.println("Start:\n");
        String correctString = scanner.nextLine();
        System.out.println(correctString);
        if (correctString == stringValue){
            Date endTime = new Date();
            System.out.println(endTime);
        }
        else
            System.out.println("Please enter correct string");
    }
    return 0;       



}}
4

1 に答える 1

1

それにかんする、

if (correctString == stringValue){

を使用して文字列を比較しないでください==。代わりにequals(...)またはメソッドを使用してください。2 つのオブジェクトが同じかどうかをチェックequalsIgnoreCase(...)することを理解してください。これは、現在関心のあることではありません。一方、メソッドは、2 つの文字列が同じ文字を同じ順序で持っているかどうかをチェックします。これがここで重要なことです。だから代わりに==

if (fu == "bar") {
  // do something
}

行う、

if ("bar".equals(fu)) {
  // do something
}

また、

if ("bar".equalsIgnoreCase(fu)) {
  // do something
}
于 2013-06-09T17:37:32.310 に答える