Java 如何获取第一列';从二维数组中删除内容

Java 如何获取第一列';从二维数组中删除内容,java,arrays,2d,Java,Arrays,2d,如何从2D数组中提取第一列?我正在用这样的方法初始化我的数组 //Initialise the array with the values from the file public static float[][] data(float[][] data, Scanner scan){ int count = 0; for (int i=0;i<data.length;i++){ for (int j=0;j<data[0].length;j++)

如何从2D数组中提取第一列?我正在用这样的方法初始化我的数组

//Initialise the array with the values from the file
public static float[][] data(float[][] data, Scanner scan){
    int count = 0; 

    for (int i=0;i<data.length;i++){
        for (int j=0;j<data[0].length;j++){
            count++;    
            if(count<data.length*data[0].length){
                for(int k=0;k<2; k++){

                    data[i][j] = (float)   IOUtil.skipToDouble(scan); 
                    System.out.print(data[i][j] + "  ");    
                }

            System.out.println();
            }   
        }

    }
    return data;    

}
但问题是当我试图调用左边的列时,我得到的是右边的列。我不确定这是否是因为右边的值是唯一被存储的值

      //should print x but actually prints y 
   public static void printX(float[][] data){

        for (int i=0;i<data.length;i++){
            for (int j=0;j<data[0].length;j++){

                System.out.println(data[i][j]);
            }
        }
    }

有谁能解释一下,我怎样才能从2D数组中获得左侧列上的数据?或者是否有其他方法来实现这类目标

我不理解您的代码,但我希望这有助于:

float[][] data = new float[10][2];
// ... fill the array with data
// print 'left' column:
for (int i = 0; i < data.length; i++) {
    System.out.println(data[i][0]);
}
float[][]数据=新的float[10][2];
// ... 用数据填充数组
//打印“左”列:
对于(int i=0;i
您需要使用IDE上的调试器,并逐步检查代码,以查看到底发生了什么。我的简短回答是,对于k=0和k=1,您正在用读取的数据对同一字段进行两次重击

编辑

同样在您的更新中,我认为您正在第二次打印循环中寻找这个(这并不重要,也可能是2,但在IMO中这更好):

如果您想强制执行我认为k正在执行的2列,类似于:

public static float[][] data(float[][] data, Scanner scan){
    for (int i=0;i<data.length;i++){
        for (int j=0;j<2;j++){
            data[i][j] = (float)   IOUtil.skipToDouble(scan); 
            System.out.print(data[i][j] + "  ");
        }
        System.out.println();
    }
    return data;    
}
公共静态浮点[][]数据(浮点[][]数据,扫描仪扫描){

对于(inti=0;i您打算如何处理这部分代码

for(int k=0;k<2; k++){
    data[i][j] = (float)   IOUtil.skipToDouble(scan); 
    System.out.print(data[i][j] + "  ");    
}
在没有看到输入文件的情况下很难判断代码应该是什么,但我认为您正在寻找类似这样的内容:

public static float[][] data(float[][] data, Scanner scan){
    for (int i = 0; i < data.length; i++) {
        for (int j = 0; j < data[i].length; j++) {
            data[i][j] = (float) IOUtil.skipToDouble(scan); 
            System.out.print(data[i][j] + "  ");    
        }
        System.out.println();
    }
    return data;
}
公共静态浮点[][]数据(浮点[][]数据,扫描仪扫描){
对于(int i=0;i
将数据放入二维数组时,会覆盖内容
在for循环中对数组执行两次
for(int k=0;kc)可以显示第二个函数的输出吗?好的,现在就完成了-我应该这样做!问题在于数组初始化函数,即它没有将值放在您认为的位置。您在该函数中执行的操作:
for(int k=0;我所有的帖子都是英式英语。如果我搬到别处,我会重新考虑编辑。在那之前,请坚持格式和语法结构等(除非你100%认为拼写错误,而不是外国的)。;-)对不起,我没听懂。我在intellij上运行了分析,但没有什么明显的。哦,我想我现在明白你的意思了。你是说我在第一列上写第二列?是的,你在数据[I][j]上写两次不改变i或j,当你在k中循环两次创建打印输出时。我对你如何命名这些方法感到有点困惑。把它们称为printX是有动机的吗?还是这是一个复制粘贴错误?我已经成功了,现在我完全明白了,我对2D数组的恐惧已经消除了。谢谢,不过我还是想e肯定在悬赏活动期间有一个真正完整的答案,因为我认为这可能会帮助其他正在与2D阵列概念作斗争的人(我要等几年才能得到50;)尽管所有的答案都是集体的,但大部分都是你的。没有一个看起来真的认识到我对二维数组的工作方式(java,还有其他C++语言)的理解。;我怀疑我们在战略上都被悬赏案否决了。不是我。这个答案对我的问题不起作用。我现在要检查一下其他的答案。我已经把输入文件的内容放在帖子上了。我会编辑以使这一点更清楚,因为我知道它可能不起作用。也是为了回答你的问题在上,我将读取第一个和第二个值,然后执行一行新的操作。如果您向我们展示
IOUtil.skipToDouble(Scanner)
所做的事情,我们可以更好地帮助您跳过任何非数值的内容,如果您有一个带有标签的文件,但这个特定文件实际上并不需要,那么这非常有用!
//Only print X
public static void printX(float[][] data){

    for (int i=0;i<data.length;i++){
       System.out.println(data[i][0]);
    }
}

//Only print Y
public static void printY(float[][] data){
    for (int i=0;i<data.length;i++){
       System.out.println(data[i][1]);
    }
}

//Print both
public static void printBoth(float[][] data){
    for (int i=0;i<data.length;i++){
       System.out.println(data[i][0] + ", " + data[i][1]);
    }
}


//Print any number in array:
public static void printAll(float[][] data){
    for (int i=0;i<data.length;i++){
        for (int j=0;j<data[i].length;j++){
            System.out.print(data[i][j];
            if (j+1 < data[i].length) {
                System.out.print(", ");
            } else {
                System.out.println();
            }
        }
    }
}
//Initialise the array with the values from the file
public static float[][] data(float[][] data, Scanner scan){
    int count = 0; 

    for (int i=0;i<data.length;i++){
        for (int j=0;j<data[0].length;j++){
            count++;    
            if(count<data.length*data[0].length){
                data[i][j] = (float)   IOUtil.skipToDouble(scan); 
                System.out.print(data[i][j] + "  ");
            }    
        }
        System.out.println();
    }
    return data;    
}
public static float[][] data(float[][] data, Scanner scan){
    for (int i=0;i<data.length;i++){
        for (int j=0;j<2;j++){
            data[i][j] = (float)   IOUtil.skipToDouble(scan); 
            System.out.print(data[i][j] + "  ");
        }
        System.out.println();
    }
    return data;    
}
for(int k=0;k<2; k++){
    data[i][j] = (float)   IOUtil.skipToDouble(scan); 
    System.out.print(data[i][j] + "  ");    
}
(float) IOUtil.skipToDouble(scan);
public static float[][] data(float[][] data, Scanner scan){
    for (int i = 0; i < data.length; i++) {
        for (int j = 0; j < data[i].length; j++) {
            data[i][j] = (float) IOUtil.skipToDouble(scan); 
            System.out.print(data[i][j] + "  ");    
        }
        System.out.println();
    }
    return data;
}
public static float[][] data(float[][] data, Scanner scan){
    int count = 0; 

    for (int i=0;i<data.length;i++){
        for (int j=0;j<data[0].length;j++){
            count++;    
            if(count<data.length*data[0].length){
                for(int k=0;k<2; k++){

                    data[i][j] = (float)   IOUtil.skipToDouble(scan); 
                    System.out.print(data[i][j] + "  ");    
                    j = j+1;
                }

            System.out.println();
            }   
        }

    }
    return data;    

}
public static void printX(float[][] data)
{
    for (int i=0;i<data.length;i++)
    {
        System.out.println(data[i][0]);
    }
}