如何在Polybius密码中打印字母的特定坐标?

时间:2019-07-17 20:56:23

标签: java multidimensional-array

我正在尝试打印二维数组中字母的特定坐标。它是ADVGVX密码中的Polybius正方形,我想只打印阵列中的一个位置,例如“ a”,即(1,3)

    public char[][] cypher = {
    {'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', 'c', 'w', '7', 'b'}, 
    {'j', '9', 'u', 't', 'i', '8'},};

我正在尝试通过使用for循环和if语句来做到这一点。

          public void printArrayElement(){
           for(int row = 0; row < cypher.length; row++){
             for(int column = 0; column < cypher [row].length; column++){
                if (cypher[row][column] == cypher [1][3]){
                    System.out.println(cypher[row][column]);
                  }
                }
              }
            }

我没有收到任何错误消息,什么也没发生。

编辑:

我实际上很难将其作为主要方法来运行。有了以上内容,我得到的消息是:

  

错误:在类.PolybiusCypher中找不到主要方法,请将该主要方法定义为:              公共静态void main(String [] args)   或JavaFX应用程序类必须扩展javafx.application.Application。

当我使用public static void main(String[] args)时,会收到多条错误消息。

2 个答案:

答案 0 :(得分:0)

public class PolybiusCypher {
    public char[][] cypher = {
        {'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', 'c', 'w', '7', 'b'}, 
        {'j', '9', 'u', 't', 'i', '8'},};

    public void printArrayElement(){
        System.out.println(cypher[1][3]);
    }

    void main(String[] args) {
        // Need to create instance of PolybiusCypher to access its fields (cypher)
        new PolybiusCypher().printArrayElement();
    }
}

或者,您可以将cypherprintArrayElement设为静态,并且无需实例化创建。

答案 1 :(得分:0)

我认为在注释中包含我测试过的代码可能会很有用。如果将其放置在名为PolybiusCipher.java的文件中,然后尝试编译并运行该文件,则应该看到预期的输出“ a”。

public class PolybiusCipher{

    public static char[][] cypher = {
            {'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', 'c', 'w', '7', 'b'},
            {'j', '9', 'u', 't', 'i', '8'},};

    public static void main(String[] args) {
        printArrayElement();
    }

    public static void printArrayElement(){
        for(int row = 0; row < cypher.length; row++){
            for(int column = 0; column < cypher [row].length; column++){
                if (cypher[row][column] == cypher [1][3]){
                    System.out.println(cypher[row][column]);
                }
            }
        }
    }
}

如果您需要更多信息,此answer提供了有关Java主要方法的一些很好的信息。