更短的代码 (Arrays/If-statements)
Shorter code (Arrays/If-statements)
我只需要知道如何将这段代码写得更短(如果可能的话)。
有人可以看一下吗?
我找不到如何用更短的方式来写它,但也许有人知道一种方法。
也许我可以将所有这些代码仅放在 1 个 If 语句或其他内容中?
String arrayWoord[]=new String[10];
arrayWoord[0] = letterVeld1.getText();
arrayWoord[1] = letterVeld2.getText();
arrayWoord[2] = letterVeld3.getText();
arrayWoord[3] = letterVeld4.getText();
arrayWoord[4] = letterVeld5.getText();
arrayWoord[5] = letterVeld6.getText();
arrayWoord[6] = letterVeld7.getText();
arrayWoord[7] = letterVeld8.getText();
arrayWoord[8] = letterVeld9.getText();
arrayWoord[9] = letterVeld10.getText();
if (arrayWoord[0].equals("")) {
toonKnop1.setVisible(false);
letterlijnLabel1.setVisible(false);
} // end of if
if (arrayWoord[1].equals("")) {
toonKnop2.setVisible(false);
letterlijnLabel2.setVisible(false);
} // end of if
if (arrayWoord[2].equals("")) {
toonKnop3.setVisible(false);
letterlijnLabel3.setVisible(false);
} // end of if
if (arrayWoord[3].equals("")) {
toonKnop4.setVisible(false);
letterlijnLabel4.setVisible(false);
} // end of if
if (arrayWoord[4].equals("")) {
toonKnop5.setVisible(false);
letterlijnLabel5.setVisible(false);
} // end of if
if (arrayWoord[5].equals("")) {
toonKnop6.setVisible(false);
letterlijnLabel6.setVisible(false);
} // end of if
if (arrayWoord[6].equals("")) {
toonKnop7.setVisible(false);
letterlijnLabel7.setVisible(false);
} // end of if
if (arrayWoord[7].equals("")) {
toonKnop8.setVisible(false);
letterlijnLabel8.setVisible(false);
} // end of if
if (arrayWoord[8].equals("")) {
toonKnop9.setVisible(false);
letterlijnLabel9.setVisible(false);
} // end of if
if (arrayWoord[9].equals("")) {
toonKnop10.setVisible(false);
letterlijnLabel10.setVisible(false);
} // end of if
您可以尝试使用 for
循环使其更短:
for (String word : arrayWoord) {
if (word.equals("")) {
// put your code here..
}
}
使用 for 循环遍历 arrayWooord 并将条件放入 for 循环中以完成您要执行的任务。
假设各种 Label
(s) 是 JLabel
的实例,而各种 Knop
(s) 是 JComponent
(s) - 你可以填充三个数组并使用单个 for
循环。像,
String arrayWoord[] = { letterVeld1.getText(), letterVeld2.getText(),
letterVeld3.getText(), letterVeld4.getText(), letterVeld5.getText(),
letterVeld6.getText(), letterVeld7.getText(),
letterVeld8.getText(), letterVeld9.getText(), letterVeld10.getText() };
JLabel[] letterLabels = { letterlijnLabel1, letterlijnLabel2, letterlijnLabel3,
letterlijnLabel4, letterlijnLabel5, letterlijnLabel6, letterlijnLabel7,
letterlijnLabel8, letterlijnLabel9, letterlijnLabel10 };
JComponent[] knops = { toonKnop1, toonKnop2, toonKnop3, toonKnop4, toonKnop5,
toonKnop6, toonKnop7, toonKnop8, toonKnop9, toonKnop10 };
for (int i = 0; i < arrayWoord.length; i++) {
if (arrayWoord[i].isEmpty()) {
knops[i].setVisible(false);
letterLabels[i].setVisible(false);
}
}
并且,如果您使用的是 Java 8+,则 for
循环可以重写为 IntStream
、filter
和 forEach
喜欢
IntStream.range(0, arrayWoord.length).filter(i -> arrayWoord[i].isEmpty())
.forEach(i -> {
knops[i].setVisible(false);
letterLabels[i].setVisible(false);
});
注意 String.isEmpty()
returns 为真当且仅当 String
的长度为 0
.
String[] arrayWoord = {
letterVeld1.getText(),
letterVeld2.getText(),
...
letterVeld10.getText()
};
TypeOfLetterlijnLabels[] letterlijnLabels = {
letterlijnLabel1,
letterlijnLabel2,
...
letterlijnLabel10
};
TypeOfToonKnop[] toonKnops = {
toonKnop1,
toonKnop2,
...
toonKnop10
}
for(int i = 0; i < arrayWoord.length && i < letterlijnLabels.length; i++) {
if(arrayWoord[i].equals("")) {
toonKnops[i].setVisible(false);
letterlijnLabels[i].setVisible(false);
}
}
import org.apache.commons.lang3.StringUtils;
for(String string : arrayWoord) {
if(StringUtils.isNotBlank(string)) {
// get toonKnop for arrayWoord
// get letterlijnLable for arrayWoord
}
}
我只需要知道如何将这段代码写得更短(如果可能的话)。 有人可以看一下吗?
我找不到如何用更短的方式来写它,但也许有人知道一种方法。 也许我可以将所有这些代码仅放在 1 个 If 语句或其他内容中?
String arrayWoord[]=new String[10];
arrayWoord[0] = letterVeld1.getText();
arrayWoord[1] = letterVeld2.getText();
arrayWoord[2] = letterVeld3.getText();
arrayWoord[3] = letterVeld4.getText();
arrayWoord[4] = letterVeld5.getText();
arrayWoord[5] = letterVeld6.getText();
arrayWoord[6] = letterVeld7.getText();
arrayWoord[7] = letterVeld8.getText();
arrayWoord[8] = letterVeld9.getText();
arrayWoord[9] = letterVeld10.getText();
if (arrayWoord[0].equals("")) {
toonKnop1.setVisible(false);
letterlijnLabel1.setVisible(false);
} // end of if
if (arrayWoord[1].equals("")) {
toonKnop2.setVisible(false);
letterlijnLabel2.setVisible(false);
} // end of if
if (arrayWoord[2].equals("")) {
toonKnop3.setVisible(false);
letterlijnLabel3.setVisible(false);
} // end of if
if (arrayWoord[3].equals("")) {
toonKnop4.setVisible(false);
letterlijnLabel4.setVisible(false);
} // end of if
if (arrayWoord[4].equals("")) {
toonKnop5.setVisible(false);
letterlijnLabel5.setVisible(false);
} // end of if
if (arrayWoord[5].equals("")) {
toonKnop6.setVisible(false);
letterlijnLabel6.setVisible(false);
} // end of if
if (arrayWoord[6].equals("")) {
toonKnop7.setVisible(false);
letterlijnLabel7.setVisible(false);
} // end of if
if (arrayWoord[7].equals("")) {
toonKnop8.setVisible(false);
letterlijnLabel8.setVisible(false);
} // end of if
if (arrayWoord[8].equals("")) {
toonKnop9.setVisible(false);
letterlijnLabel9.setVisible(false);
} // end of if
if (arrayWoord[9].equals("")) {
toonKnop10.setVisible(false);
letterlijnLabel10.setVisible(false);
} // end of if
您可以尝试使用 for
循环使其更短:
for (String word : arrayWoord) {
if (word.equals("")) {
// put your code here..
}
}
使用 for 循环遍历 arrayWooord 并将条件放入 for 循环中以完成您要执行的任务。
假设各种 Label
(s) 是 JLabel
的实例,而各种 Knop
(s) 是 JComponent
(s) - 你可以填充三个数组并使用单个 for
循环。像,
String arrayWoord[] = { letterVeld1.getText(), letterVeld2.getText(),
letterVeld3.getText(), letterVeld4.getText(), letterVeld5.getText(),
letterVeld6.getText(), letterVeld7.getText(),
letterVeld8.getText(), letterVeld9.getText(), letterVeld10.getText() };
JLabel[] letterLabels = { letterlijnLabel1, letterlijnLabel2, letterlijnLabel3,
letterlijnLabel4, letterlijnLabel5, letterlijnLabel6, letterlijnLabel7,
letterlijnLabel8, letterlijnLabel9, letterlijnLabel10 };
JComponent[] knops = { toonKnop1, toonKnop2, toonKnop3, toonKnop4, toonKnop5,
toonKnop6, toonKnop7, toonKnop8, toonKnop9, toonKnop10 };
for (int i = 0; i < arrayWoord.length; i++) {
if (arrayWoord[i].isEmpty()) {
knops[i].setVisible(false);
letterLabels[i].setVisible(false);
}
}
并且,如果您使用的是 Java 8+,则 for
循环可以重写为 IntStream
、filter
和 forEach
喜欢
IntStream.range(0, arrayWoord.length).filter(i -> arrayWoord[i].isEmpty())
.forEach(i -> {
knops[i].setVisible(false);
letterLabels[i].setVisible(false);
});
注意 String.isEmpty()
returns 为真当且仅当 String
的长度为 0
.
String[] arrayWoord = {
letterVeld1.getText(),
letterVeld2.getText(),
...
letterVeld10.getText()
};
TypeOfLetterlijnLabels[] letterlijnLabels = {
letterlijnLabel1,
letterlijnLabel2,
...
letterlijnLabel10
};
TypeOfToonKnop[] toonKnops = {
toonKnop1,
toonKnop2,
...
toonKnop10
}
for(int i = 0; i < arrayWoord.length && i < letterlijnLabels.length; i++) {
if(arrayWoord[i].equals("")) {
toonKnops[i].setVisible(false);
letterlijnLabels[i].setVisible(false);
}
}
import org.apache.commons.lang3.StringUtils;
for(String string : arrayWoord) {
if(StringUtils.isNotBlank(string)) {
// get toonKnop for arrayWoord
// get letterlijnLable for arrayWoord
}
}