Java 如何将二维数组转换为字符串
问题是我将名为“currentlight”的二维数组传递给getStateVal函数 在for循环中,我尝试使用Integer.toString()将数组的2维转换为字符串,在运行到循环结束后,我不会得到任何数据值的更新 任何使数据在循环中每次更新的解决方案 函数getStateValJava 如何将二维数组转换为字符串,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 = ""
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
的本地数据,并且没有打印或返回,您希望得到什么?