我的项目是创建一个货币转换器,我似乎无法将if语句连接到用户的选择。
import javax.swing.JOptionPane;
public class Test {
public static void main(String args[]){
double CanadianDollar = .9813;
double Euro = .757;
double IndianRupee = 52.53;
double JapaneseYen = 80.92;
double MexicanPeso = 13.1544;
double BritishPound = .6178;
String input;
Object[] possibilities = {"Canadian Dollar", "Euro", "Indian Rupee", "Japanese Yen",
"Mexican Peso", "British Pound"};
String currencyChosen = (String) JOptionPane.showInputDialog( null,
"What currency would you like to start with?:",
"Currency Converter",
JOptionPane.QUESTION_MESSAGE,
null,
possibilities,
null);
JOptionPane.showMessageDialog(null, "You chose to start from " + currencyChosen);
Object[] possibilitiesToChoose = {"Canadian Dollar", "Euro", "Indian Rupee", "Japanese Yen",
"Mexican Peso", "British Pound"};
String convertTo = (String) JOptionPane.showInputDialog( null,
"What currency would you like to convert to?:",
"Currency Converter",
JOptionPane.QUESTION_MESSAGE,
null,
possibilities,
null);
JOptionPane.showMessageDialog(null, "You chose to convert from " + currencyChosen + " to " + convertTo);
if (currencyChosen = "Canadian Dollar") <- This is not working
}
}
尝试替换它:
if (currencyChosen = "Canadian Dollar")
使用equals
方法:
if ("Canadian Dollar".equals(currencyChosen ))
...
用于赋值的=
,而不是用于检查字符串之间的相等性。
在 Java 中比较字符串时,需要使用 equals 方法
if(string1.equals(string2))
因为 String1 和 String2 可能具有相同的值,但不引用相同的对象。
if(string1 == string2)
仅当 string1 和 string2 实际上引用同一对象时,才会返回 true
您可以在Java 字符串文档
(编辑:您的代码实际上将值"加拿大元"分配给 currencySelected。 注意"="和"=="之间的区别)