Java 如何在2D数组中将字符串输入与字符配对?

Java 如何在2D数组中将字符串输入与字符配对?,java,arrays,string,input,multidimensional-array,Java,Arrays,String,Input,Multidimensional Array,当我运行下面的方法时,请记住,显示时,ADFGVX将打印到阵列的左侧和顶部,就像经典的ADFGVX密码一样 static char [][] poly = new char[][]{ {'p','h','0','q','g','6'}, {'4','m','e','a','1','y'}, {'l','2','n','o','f','d'}, {'x','k','r','3','c','v'}, {'s','5','

当我运行下面的方法时,请记住,显示时,ADFGVX将打印到阵列的左侧和顶部,就像经典的ADFGVX密码一样

static char [][] poly = new char[][]{
        {'p','h','0','q','g','6'},
        {'4','m','e','a','1','y'},
        {'l','2','n','o','f','d'},
        {'x','k','r','3','c','v'},
        {'s','5','z','w','7','b'},
        {'j','9','u','t','i','8'}};
我已经写了一个方法,使用二维阵列显示一个多边形正方形,可以在上面看到,我想做的是将用户输入的内容与正方形配对,因此如果用户键入对象,我希望它返回FG VX XA DF GV XG

Scanner console = new Scanner (System.in);

String phrase;

displayGrid();
System.out.println("");

System.out.print("Please enter a phrase you want to use\n");
phrase = console.nextLine();

console.close();

这里有人知道我会怎么做吗?我本来打算做一个switch语句之类的东西,但我认为这行不通,即使这样做了,也会很长,效率很低。

您可以在数组中迭代以获取要查找的字符的位置,然后将该位置解码为字母

public static String[] cypherADFGVX(String phrase){

    String[] output=new String[phrase.length()];

    for (int i = 0; i < phrase.length(); i++) {
        //optional for breaking
        //squareIteration:
        for (int j = 0; j < 6; j++) {
            for (int k = 0; k < 6; k++) {
                if(poly[j][k]==phrase.charAt(i)){
                    output[i]=new String(new char[]{switchChar(j),switchChar(k)});
                    //To stop the iteration over poly and take care of the next char
                    //break squareIteration;                    
                }
            }
        }
    }

    return output;
}

public static char switchChar(int integer){
    switch (integer) {
    case 0:     
        return 'A';
    case 1:
        return 'D';
    //and so on
    }
}
创建一个新的字符串数组,其中每个字符串都是两个大写字母。 它看起来像[FG,VX,…]。在我看来,这更便于进一步处理

 if(poly[j][k]==phrase.charAt(i))
将方框中位置jk处的字符与输入字符串的第i个字符进行比较

output[i]=new String(new char[]{switchChar(j),switchChar(k)});
我使用以字符数组为参数的字符串构造函数

new char[]{'a','b'}
创建数组并用括号中列出的元素填充它


确实可以使用开关设置变量的值,然后返回该变量

谢谢你的回复!我只是想澄清一些事情。String[]输出=新字符串[phrase.length];这是创建一个新字符串并将其设置为短语的大小?poly[j][k]==phrase.charAti这意味着其当前所在索引处的字符是否等于字符串中的字符?输出[i]=newstringnewchar[]{switchCharj,switchChark};这是什么意思?我以前从未见过这种情况,现在我将研究switchchar,我们是否应该通过开关传递输出?为什么是整数?
output[i]=new String(new char[]{switchChar(j),switchChar(k)});
new char[]{'a','b'}