while循环中的Scanner变量出错

时间:2015-02-08 11:41:16

标签: java while-loop java.util.scanner

我是Java的新手,因为我遇到的错误,我发现它非常复杂。所以我对这段代码有疑问:

主类:

public class Main {

  public static void main(String[] args){

     Answer a = new Answer();

     String ans = null;

     while(ans != "A"){

        ans = a.create();

        System.out.print(ans + "\n");

     }

  }

}

答案课:

import java.util.Scanner;

public class Answer {

  public String create(){

    Scanner s = new Scanner(System.in);

    return s.next();

  }

}

我希望程序允许我写一些东西。然后,如果我写的不是字母A,程序必须允许我写别的东西,否则必须停止。但是,即使我写“A”,程序仍然保持,允许我写其他东西。代码有什么问题?

1 个答案:

答案 0 :(得分:2)

使用!=运算符无法正确比较字符串。相反,您应该使用while(!ans.equals("A"))。其次,尽量不要在create方法中重新创建Scanner对象。这是一种资源浪费。