Java-Casting用户';s输入,它包含数组中的整数和双精度

Java-Casting用户';s输入,它包含数组中的整数和双精度,java,Java,我对Java是全新的。目前,我遇到了使用用户输入的特定数字铸造3×4阵列的问题,如下所示: 2.6 5.1 6 8 5.4 4.4 7 1 9.5 7.9 2 3 现在,我已经让它只适用于整数,并将其结构化,因为我无法将我的头脑集中在用户的多个输入上 如果我只使用整数(例如5而不是5.1,2而不是2.6等),我得到的结果如下: int row, col; int i, j; int data[][] = new int[4][3];

我对Java是全新的。目前,我遇到了使用用户输入的特定数字铸造3×4阵列的问题,如下所示: 2.6 5.1 6 8 5.4 4.4 7 1 9.5 7.9 2 3

现在,我已经让它只适用于整数,并将其结构化,因为我无法将我的头脑集中在用户的多个输入上

如果我只使用整数(例如5而不是5.1,2而不是2.6等),我得到的结果如下:

    int row, col;
    int i, j;
    int data[][] = new int[4][3];


    col = 3;
    row = 4;

    Scanner scan = new Scanner(System.in);
    // enter array elements.
    System.out.println("Enter the provided Array Elements : ");
    //Works with integers as input only at the moment.

    for(i=0; i<row; i++)
    {
        for(j=0; j<col; j++)
        {
            data[i][j] = scan.nextInt();
        }
    }
int行,列;
int i,j;
整数数据[][]=新整数[4][3];
col=3;
行=4;
扫描仪扫描=新扫描仪(System.in);
//输入数组元素。
System.out.println(“输入提供的数组元素:”);
//仅在此时使用整数作为输入。

对于(i=0;i,您不能像预期的那样在java中强制转换数组。例如,您不允许执行以下操作:

int[]i=新的int[0];
双[]d=(双[])i;

这意味着,您只需将数组声明为double[],并用
scan.nextDouble()
替换
scan.nextDouble()
,就这样。

为什么不使用scan.nextDouble()呢读取浮点数。从数组到所有变量都声明为双精度。只使用
double
s,不使用
int
s。1.将数据类型从int更改为double。2.datat[i][j]=scan.nextDouble()这对你来说应该是最简单的谢谢!它现在运行得很好。我只是完全忽略了声明用户输入,这是一个非常需要的提醒,供将来参考。