如果句子有多个变量

时间:2013-09-06 00:22:46

标签: java string if-statement label

我一直在研究,我无法找到解决问题的方法。这是代码的一部分:

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

2 个答案:

答案 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));
}