1
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の値が配列に入らないのですか?問題になる可能性があります

4

2 に答える 2

9

x文字列です。==文字列の同等性をテストするために使用することはできません。

代わりに使用しx.equals("aa")ます。xnullの場合は、"aa".equals(x)代わりに使用できます(このフォームではNullPointerExceptionは発生しません)。

于 2013-03-06T05:33:17.180 に答える
1

if ステートメントを次のように変更します。

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

演算子ではなく、関数を使用しString.equals(other String)て文字列を比較します==

関数は文字列の実際の内容をチェックし、==演算子はオブジェクトへの参照が等しいかどうかをチェックします。

それが役に立てば幸い..

于 2013-03-06T05:44:29.293 に答える