我正在尝试做一个货币兑换程序,我使用一个组合框来列出用户想要进行的转换类型,当用户选择一个选项时,它就会进行转换。有没有比使用一堆if else语句更好的方法来使用equals.IgnoreCase?我为这些选项创建了一个字符串数组,然后用该数组作为参数声明了JComboBox。
@Override
public void actionPerformed(ActionEvent e) {
String text = textField.getText();
double c = Double.parseDouble(text);
if(e.getSource()==comboBox) {
String choice = comboBox.getSelectedItem().toString();
if(choice.equalsIgnoreCase("Dollars to Pesos")) { // placeholder text
System.out.println(choice);
}
else if(choice.equalsIgnoreCase("Dollars to Pesos")) {
System.out.println(choice);
}
else if(choice.equalsIgnoreCase("Pesos to Dollars")) {
System.out.println(choice);
}
else if(choice.equalsIgnoreCase("Dollars to GB Pounds")) {
System.out.println(choice);
}
else if(choice.equalsIgnoreCase("GB Pounds to Dollars")) {
System.out.println(choice);
}
else if(choice.equalsIgnoreCase("Dollars to Yen")) {
System.out.println(choice);
}
else if(choice.equalsIgnoreCase("Yen to Dollars")) {
System.out.println(choice);
}
}
}
字符串
2条答案
按热度按时间2vuwiymt1#
possibleChoices
,它可能看起来像字符串
mwyxok5s2#
Java 8或更高版本可以使用函数接口的Map来创建更灵活的解决方案,如下所示,
字符串
这种方法的另一个好处是,只需在Map中添加或删除条目,就可以轻松地添加或删除货币转换,而不必触及
actionPerformed
方法中的逻辑。如果您预计转换列表在未来会增长,则它更具可扩展性。