Java 如何将二维数组转换为字符串

Java 如何将二维数组转换为字符串,java,arrays,list,function,Java,Arrays,List,Function,问题是我将名为“currentlight”的二维数组传递给getStateVal函数 在for循环中,我尝试使用Integer.toString()将数组的2维转换为字符串,在运行到循环结束后,我不会得到任何数据值的更新 任何使数据在循环中每次更新的解决方案 函数getStateVal public int getStateVal(Light l) { int a[][] = l.getArrayAllLight(); String data = ""

问题是我将名为“currentlight”的二维数组传递给getStateVal函数 在for循环中,我尝试使用Integer.toString()将数组的2维转换为字符串,在运行到循环结束后,我不会得到任何数据值的更新

任何使数据在循环中每次更新的解决方案

函数getStateVal

    public int getStateVal(Light l) {
    int a[][] = l.getArrayAllLight();

    String data = "";
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < column; j++) {
            data += Integer.toString(a[i][j]);
        }
    }
    int b = Integer.parseInt(binary, 2);
    return b;
}
public int getStateVal(灯l){
int a[][]=l.getArrayAllLight();
字符串数据=”;
对于(int i=0;i
函数求解

public void Solving() {
    int val = 0, depth = 0;
    String bin = binary;
    Map<Integer, Boolean> H = new HashMap<>();
    Graph<Light, DefaultEdge> G = new SimpleGraph<>(DefaultEdge.class);
    light = new Light(start);
    Light nextlight, currentlight;
    Light split = new Light();
    ArrayDeque<Light> AD = new ArrayDeque<>();;
    AD.add(light);
    AD.add(split);
    while (!AD.isEmpty()) {
        currentlight = AD.pollFirst();
        if (currentlight == split) {
            depth++;
            AD.addLast(currentlight);
        } else {
            val = getStateVal(currentlight);
            System.out.println(val);
            if (val == 0) {
                System.out.printf("%d moves to turn off all light", depth);
                break;
            }
            if (!H.containsKey(val)) {
                H.put(val, true);
                System.out.println("+");
                for (int i = 0; i < row; i++) {
                    for (int j = 0; j < column; j++) {
                        nextlight = toggle(currentlight, i, j);
                        AD.addLast(nextlight);
                        System.out.println("add last");
                    }
                }
            }
        }
    }
公共作废解决(){
int val=0,深度=0;
字符串bin=二进制;
Map H=新的HashMap();
图G=新的SimpleGraph(DefaultEdge.class);
灯=新灯(启动);
下一个灯光,当前灯光;
灯光分割=新灯光();
ArrayDeque AD=新的ArrayDeque();;
AD.add(光);
添加(拆分);
而(!AD.isEmpty()){
currentlight=AD.pollFirst();
如果(currentlight==分割){
深度++;
AD.addLast(当前灯);
}否则{
val=getStateVal(currentlight);
系统输出打印项次(val);
如果(val==0){
System.out.printf(“%d移动以关闭所有灯光”,深度);
打破
}
如果(!H.containsKey(val)){
H.put(val,true);
System.out.println(“+”);
对于(int i=0;i
您不更新
数据
值是什么意思?您怎么知道?如果
数据
getStateVal
的本地数据,并且没有打印或返回,您希望得到什么?