数组没有得到循环中的值

时间:2013-03-06 05:31:44

标签: java

import java.util.*;
public class S1 {
     public static void main(String[] args) {
        String twoDm[][]= new String[3][3];
        int i,j;

      int[] c=new int[2];
      //int []d =new int[1];

        Scanner sc=new Scanner(System.in);
      for(i=0;i<3;i++){
          for(j=0;j<3;j++){
              twoDm[i][j]=sc.next();
             String x= twoDm[i][j];
              if(x=="aa"){
                  c[0]=i;//values here are not getting into array c//
                  c[1]=j;

              }

      for(int f:c){
              System.out.println(f);      

          }
      }

打印时数组C显示00为什么i和j的值没有进入数组可能是什么问题

2 个答案:

答案 0 :(得分:9)

x是一个字符串。您无法使用==来测试字符串上的相等性。

您想要使用x.equals("aa")。如果x为null,则可以改为使用"aa".equals(x)(此表单不会给您NullPointerException)。

答案 1 :(得分:1)

if语句更改为:

if("aa".equals(x){
     c[0]=i;//values here are not getting into array c//
     c[1]=j;
}

使用String.equals(other String)函数比较字符串,而不是==运算符。

该函数检查字符串的实际内容,==运算符检查对象的引用是否相等。

希望它有所帮助..