java程序。 输入为CNY USD等货币缩写。 输出为 ¥ $等 该货币的符号。currency类

发布网友 发布时间:2022-04-23 12:52

我来回答

2个回答

热心网友 时间:2023-10-14 07:01

因为我们用的都是中文环境(默认),所以你的程序只能输入中国的货币符号,要通过Locale类的: public static void setDefault(Locale newLocale)方法设置下语言环境
具体代码可参考如下的:

import java.util.Currency;
import java.util.Locale;
import java.util.Scanner;

/**
*
* @author top
*/
public class CurrencySymbol {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Please input a valid ISO 4217 currency code: ");
Scanner scan = new Scanner(System.in);
String code1 = scan.nextLine();
Locale.setDefault(Locale.CHINA);//中文语言环境下
Currency currency1 = Currency.getInstance(code1);
System.out.println(currency1.getSymbol());
String code2 = scan.nextLine();
Locale.setDefault(Locale.US);//美国
Currency currency2 = Currency.getInstance(code2);
System.out.println(currency2.getSymbol());

}
}

热心网友 时间:2023-10-14 07:01

楼主试着给他加上语言环境吧 不过这样就只能打印$符号了 你可以加判断来打印输出
System.out.println(currency.getSymbol(Locale.US));
这样就会打印$ 但人民币就不识别了
估计这个currency.getSymbol()方法会再本机找默认的语言环境
您可以加判断
比如:if("CNY".equals(code)){
System.out.println(currency.getSymbol());

}else if("USD".equals(code)){
System.out.println(currency.getSymbol(Locale.US));
}else if("FRF".equals(code)){
System.out.println(currency.getSymbol(Locale.FRANCE));
}....
这个我也不是很懂 看了会API 希望可以帮到您哈

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com