Java中从int到string的2D数组或矩阵

时间:2015-04-14 00:50:14

标签: java arrays matrix

好的,所以我想创建一个整数矩阵,比如9个整数,有些是正数,有些是负数,如

int[][] myMatrix = {{1,5,-2},{7,9,3},{-4,-7,6}}

但我想声明一个大小为3 x 3的String矩阵,然后迭代整数矩阵,如果当前元素有一个正整数,则将单词POSITIVE放在String矩阵的相应元素中,否则放入NEGATIVE。当我运行整数矩阵时,我的代码打印得很好,但我很困惑如何编写矩阵的条件。我已经尝试过谷歌搜索,但没有。这是我的代码:

import java.util.Scanner;
import java.io.File;
import java.io.IOException;


public class 2D_Matrix {

public static void main(String[] args) throws IOException {


    int [][] firstMatrix = {{1, 5, -2},{7, 9, 3},{-4 , -7, 6}};
    String[][] secondMatrix = new String[3][3];


    for (int x = 0; x < 3; ++x) {
        for (int y = 0; y < 3; ++y) {               

    System.out.print(myMatrix[x][y] + "\t");

    }
        System.out.println();

    }
}

}

我尝试了许多不同的组合,但没有任何作用或抛出错误。例如:

if(x < 0){
System.out.print("Negative");
}
else if(y < 0){ 
System.out.print("Negative");
}
else
{System.out.print("positive");
}

但它会抛出错误,指出y无法解析为变量。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我认为你想要的是

for (int x = 0; x < 3; ++x) {
    for (int y = 0; y < 3; ++y) {

        if(firstMatrix[x][y] < 0)
            secondMatrix[x][y] = "NEGATIVE";
        else
            secondMatrix[x][y] = "POSITIVE";            
    }
 }

关于您的验证

if(x < 0){
}
else if(y < 0){ 
}
else
{
}

您正在验证索引,但数组的索引不能为负数。根据您的要求,您需要验证值是负数还是正数。请参阅我的代码段,了解如何检索价值并验证它们。