将1D数组转换为2D数组而不重复

时间:2016-06-23 16:38:11

标签: java arrays duplicates

我试图将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));

所有人都非常感谢!这已经是几个小时了。

1 个答案:

答案 0 :(得分:0)

如果您想创建没有重复的集合,您应该使用Set Collection