0

我一直在研究,但找不到解决我在这里遇到的问题的方法。以下是部分代码:

    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 次更快的方法?

4

2 回答 2

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...
    }
}

This assumes you have the ability to edit PHORA1...PHORA19 to be an array as well. If not, you could have some problems...

于 2013-09-06T00:29:06.607 回答
1

为什么不使用字符串数组

String[] PHORA

然后您可以遍历数组,然后将字符串传递给一个方法,该方法采用第一个字符并进行测试。

for (int x = 0; x < 19; x++) {
    testThis (PHORA[x].getText().charAt(0));
}
于 2013-09-06T00:28:12.400 回答