我一直在研究,我无法找到解决问题的方法。这是代码的一部分:
String p1 = PHORA1.getText();
String p2 = PHORA2.getText();
String p3 = PHORA3.getText();
String p4 = PHORA4.getText();
String p5 = PHORA5.getText();
char i1 = p1.charAt(0);
char i2 = p2.charAt(0);
char i3 = p3.charAt(0);
char i4 = p4.charAt(0);
char i5 = p5.charAt(0);
if (i1 == '<') {
ImageIcon img3 = new ImageIcon("src\\img\\yellow.png");
ok.setIcon(img3);
ok.setVisible(true);
ok.setText("");
ok.setToolTipText("MISTAKE");
} else {
ImageIcon img3 = new ImageIcon("src\\img\\ok.png");
ok.setIcon(img3);
ok.setVisible(true);
ok.setText("");
ok.setToolTipText("RIGHT.");
}
我需要这样做19次(尽管在代码中我只显示了每种类型的5个变量,以便在这里缩短它们,但它们实际上是19)。在条件中有完全相同的陈述,唯一改变的是变量。
其余的变量名称是p6,p7 .... p19和i6,i7 ..... i19。 有没有比复制确切代码19倍更快的方法?
答案 0 :(得分:2)
String[] p = new String[19];
char[] i = new char[19];
for (int j = 0; j < 19; j++) {
p[j] = PHORA[j].getText();
i[j] = p[j].charAt(0);
if (i[j] == '<') {
// etc...
}
}
这假设您可以将PHORA1 ... PHORA19编辑为数组。如果没有,你可能会遇到一些问题......
答案 1 :(得分:1)
为什么不使用字符串数组
String[] PHORA
然后你可以循环遍历数组,然后将String传递给一个接受第一个char并进行测试的方法。
for (int x = 0; x < 19; x++) {
testThis (PHORA[x].getText().charAt(0));
}