我试图将1D数组转换为2D数组([5] [5])而不使用重复字符。我似乎无法使它保持一致,有时它有效,有时则不然。
输入:billys
输出:[[b,i,l,y,],[,,,,],[,,,,],[,,,,],[,,,,]]
显然错过了's'但是已经正确删除了'l'中的一个
输入:billysb
输出:[[b,i,l,y,s],[,,,,],[,,,,,,,,,,,,,,,,,,,]]
再次,正确删除了重复的字母。
输入:billysabc
输出:线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:9
输入:bbbbbbb
输出:[[b,b,b ,,],[,,,,],[,,,,,,,,,,,,,,,,,,,]]
删除一些但不是全部重复项。
这是为我做转换的代码:
char[][] playFairGrid = new char[5][5];
//write keyword to array
char[] keywordBreakdown = keyword.toCharArray();
//write keyword to grid
for(int i =0; i<5;i++){
for(int j=0;j<5;j++){
if (count==keywordBreakdown.length-1) break;
//check for duplicates
for(int m =0; m<5;m++){
for(int l=0;l<5;l++){
if (keywordBreakdown[count]==playFairGrid[m][l]){
count++;
}
}
}
playFairGrid[i][j]=keywordBreakdown[count];
count++;
}
}
System.out.println(Arrays.deepToString(playFairGrid));
所有人都非常感谢!这已经是几个小时了。