java:向2D数组中的一列添加一个值

java:向2D数组中的一列添加一个值,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我有一个2D数组,我必须向其中添加一个特定的值,但只能添加到2D数组的一列。必须跳过2D数组的一行,并保持与以前相同 我已经有了一个代码(见下文),但这只是添加值,而不是计算值 到目前为止,我的代码是: double lowest = Double.parseDouble(excelMatrix[0][0]); int row = 0, column = 0; List usedRow = new ArrayList(); for(int r = 0; r<exc

我有一个2D数组,我必须向其中添加一个特定的值,但只能添加到2D数组的一列。必须跳过2D数组的一行,并保持与以前相同

我已经有了一个代码(见下文),但这只是添加值,而不是计算值

到目前为止,我的代码是:

double lowest = Double.parseDouble(excelMatrix[0][0]);
    int row = 0, column = 0;
    List usedRow = new ArrayList(); 
    for(int r = 0; r<excelMatrix.length-1; r++){

        for(int c = 0; c<excelMatrix[r].length; c++){
            double number = Double.parseDouble(excelMatrix[r][c]);
            if(lowest > number) {
                lowest = number;
                row = r;
                column = c;
            }                   
        }                       
    }                       
    usedRow.add(row);

for(int r = 0; r < excelMatrix.length; r++){
   if( r != row)
   excelMatrix[r][column] += lowest;
}
通过在第3列(第3行除外)中添加10,我想得到:

{1 , 2 , 3 , 14 , 5}  
{5 , 4 , 3 , 12 , 1}  
{4 , 5 , 1 , 12 , 3}  
{2 , 3 , 4 , 5 , 1}  
{3 , 4 , 5 , 11 , 2}  
但现在我得到了:

{1 , 2 , 3 , 410 , 5}  
{5 , 4 , 3 , 210 , 1}  
{4 , 5 , 1 , 210 , 3}  
{2 , 3 , 4 , 5 , 1}  
{3 , 4 , 5 , 110 , 2}  

我希望这个例子能说明我的问题。谢谢大家!

根据您得到的输出,
excelMatrix
的类型似乎是
String[][]
,因此当您使用
+=
运算符时,您是在将一个数字连接到一个字符串

如果您将
excelMatrix
数组更改为
int[][]
,您将获得所需的输出

如果
excelMatrix
必须保持为
字符串[][]
,您仍然可以通过将
字符串
转换为
int
、执行加法并转换回
字符串
(尽管效率较低):


此代码片段将解决您的问题

for(int i =0;i<numOfRows;i++) {
    for(int j= 0;j<numOfColumns;j++) {
       if(i != rowToBeSkipped) {
         excelMatrix[i][j] = excelMatrix[i][j] + value;
        }
    }
}

用于(int i=0;iIn您需要的输出与您当前获得的输出有什么不同?@Eran我刚刚更新了这个问题。我希望现在我的问题已经很清楚了。它只是添加值,而不是计算值。@boersencrack它看起来像是在附加字符串。
excelMatrix
看起来像什么?您试图计算什么有了它,发布更多的代码可能会很有用,也就是说,使用数据进行计算的方法。ur
excelMatrix
是int数组还是
2d字符数组
excelMatrix[r][column] = Integer.toString(Integer.parseInt(excelMatrix[r][column]) + value);
for(int i =0;i<numOfRows;i++) {
    for(int j= 0;j<numOfColumns;j++) {
       if(i != rowToBeSkipped) {
         excelMatrix[i][j] = excelMatrix[i][j] + value;
        }
    }
}