Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我能';t将高于9的值输入此_Java_Arrays_Multidimensional Array_Indexoutofboundsexception - Fatal编程技术网

Java 我能';t将高于9的值输入此

Java 我能';t将高于9的值输入此,java,arrays,multidimensional-array,indexoutofboundsexception,Java,Arrays,Multidimensional Array,Indexoutofboundsexception,我认为当我输入小于9的值时,这个方法非常有效。但每当我输入一个大于9的值时,程序就会抛出ArrayIndexOutOfBoundsException。我想不出是什么原因造成了这个问题。有人能简单地给我解释一下这个问题吗?解决这个问题的办法是什么 import java.util.Scanner; public class Main{ public static void main(String[] args) { int[][] twoDAarray = new int[3][3];

我认为当我输入小于9的值时,这个方法非常有效。但每当我输入一个大于9的值时,程序就会抛出ArrayIndexOutOfBoundsException。我想不出是什么原因造成了这个问题。有人能简单地给我解释一下这个问题吗?解决这个问题的办法是什么

import java.util.Scanner;
public class Main{
public static void main(String[] args) {
    int[][] twoDAarray = new int[3][3];

    Scanner input = new Scanner(System.in);
    System.out.println("Enter values: ");
    for(int i=0; i<3; i++){
        for(int j=0; j<3; j++){
            twoDAarray[i][j] = input.nextInt();
        }
    }

    System.out.println(checkLoShuSquare( twoDAarray ));
}

public static boolean checkLoShuSquare( int[][] twoDAarray ) {
    boolean[] isUnique = new boolean[twoDAarray.length*twoDAarray[0].length+1];
    for ( int i = 0; i < twoDAarray.length; i++ ) {
       for ( int j = 0; j < twoDAarray[0].length; j++ ) {
         if ( isUnique[twoDAarray[i][j]] ){
            return false;
         }
         isUnique[twoDAarray[i][j]] = true;
       }
    }

    int[] lessThan9 = new int[twoDAarray.length*twoDAarray[0].length+1];
    for ( int i = 0; i < twoDAarray.length; i++ ) {
        for ( int j = 0; j < twoDAarray[0].length; j++ ) {
            if (lessThan9[twoDAarray[i][j]] <= 9){
                return true;
            }
    }
  }
    return true;
 }
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
int[]twodarray=newint[3][3];
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入值:”);

对于(int i=0;i,
isUnique
数组的大小为10,而应根据用户插入的最大整数调整大小


当然,有更好的方法来检查任意大小的重复数字,比如使用
集合

数组的
是唯一的
数组的大小为10,而应该根据用户插入的最大整数调整大小


当然,有更好的方法来检查任意大小的重复数字,比如使用
集合

在哪一行引发异常?
isUnique[twoDAarray[i][j]=true;
如果数字大于9,则会导致问题。问题比9[twoDAarray[i][j]@Stultuske if(isUnique[twoDAarray[i][j]]{code>isUnique[twoDAarray[i][j]]=true;
如果数字大于9,则会导致问题。问题是lessThan9[twoDAarray[i][j]@Stultuske if(isUnique[twoDAarray[i][j]{数组大小不是
isUnique
7,因为它是2*3+1;数组大小不是
isUnique
7,因为它是2*3+1