我正在尝试打印二维数组中字母的特定坐标。它是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)
时,会收到多条错误消息。
答案 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();
}
}
或者,您可以将cypher
和printArrayElement
设为静态,并且无需实例化创建。
答案 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主要方法的一些很好的信息。