Java if语句返回不相等?

时间:2013-12-23 03:40:12

标签: java

我这里有这段代码(java):

void findDistance() {

               String name1 = new String();
               Scanner s = new Scanner(System.in);
               System.out.print("Enter the name of Starting Location: ");
               name1 = s.next();
               name1 = name1.toLowerCase();
               for (int i = 0; i < numCities; i++) {
                   System.out.println(name1);
                   System.out.println(cityNames[i]);
                   if (name1 == cityNames[0]){
                   //    int x = i;
                       System.out.print("x");

                   }
                    else {
                    //     System.out.println(name1);
                    //     System.out.println(cityNames[i]);
                          System.out.println("y");
                       }

                 }

               }

由于某种原因,即使name1和cityNames [0]相等,if语句也不这么认为。我有几个打印语句来返回值来测试它,它打印相同。任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:4)

更改行

if (name1 == cityNames[0]){

if (name1.equals(cityNames[0])){

您需要使用equals()或使用==来比较变量的引用。