import java.util.Scanner;/*** Description:* 系统提供人民币(CNY)美元(USD)英镑(GBP)价值转换* @author 19040838* @title: ExchangeRate* Created by 19040838 on 2021.02.01 22:17*/
public class ExchangeRate {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String input = sc.nextLine();System.out.println(SolutionWay.computer(input));}}public static class SolutionWay {// 英镑private static final String GBP = "GBP";// 美元private static final String USD = "USD";// 人民币private static final String CNY = "CNY";// 港元private static final String HKD = "HKD";// 最大兑换private static final String MAX = "MAX";// 最小兑换private static final String MIN = "MIN";private static final String ERROR = "ERROR";private static int gbpRate;private static int usdRate;private static int cnyRate;private static int inputNum;private static String inputType;private static String resultType;private static String computer(String input) {// 以空白字符分割字符串,得到一个字符串数组。String[] strArr = input.split("\\s");/*1、\s用于匹配空白字符。2、\\s用于匹配字符串中的\和s,两个字符。*/if (strArr.length == 6 && (checkNum(strArr[0]) && checkNum(strArr[1]) && checkNum(strArr[2]) &&checkNum(strArr[3]) && checkType(strArr[4]) && checkResultType(strArr[5]))) {setParam(Integer.parseInt(strArr[0]), Integer.parseInt(strArr[1]), Integer.parseInt(strArr[2]),Integer.parseInt(strArr[3]), strArr[4], strArr[5]);if (resultType.equals(MAX)) {// 最大兑换return getMaxResult();} else {return getMinResult();}} else {return ERROR;}}// 设置汇率系数private static void setParam(int a, int b, int c, int num, String inputT, String resultT) {gbpRate = a * b * c;usdRate = a * b;cnyRate = a;inputNum = num;inputType = inputT;resultType = resultT;}// 检查输入是否为负数,或小数private static boolean checkNum(String num) {for (int i = 0; i < num.length(); i++) {char c = num.charAt(i);if (c < '0' || c > '9') {return false;}}return true;}// 检查货币类型是否为以下四种之一,主要是检查是否为大写private static boolean checkType(String type) {return type.equals(HKD) || type.equals(CNY) || type.equals(USD) || type.equals(GBP);}// 输入的所有参数都要进行检查 检查是否为MAX或MINprivate static boolean checkResultType(String resultType) {return resultType.equals(MAX) || resultType.equals(MIN);}private static String getMaxResult() {// 货币转换成以港元为单位int tempV = getRate(inputType) * inputNum;StringBuilder result = new StringBuilder();if (tempV / gbpRate > 0) {result.append(tempV / gbpRate).append(' ').append("GBP ");tempV = tempV % getRate(GBP);}if (tempV / usdRate > 0) {result.append(tempV / usdRate).append(' ').append("USD ");tempV = tempV % getRate(USD);}if (tempV / cnyRate > 0) {result.append(tempV / cnyRate).append(' ').append("CNY ");tempV = tempV % getRate(CNY);}if (tempV > 0) {result.append(tempV).append(' ').append("HKD");}return result.toString();}private static String getMinResult() {return inputNum * getRate(inputType) + " HKD";}private static int getRate(String type) {switch (type) {case GBP:return gbpRate;case USD:return usdRate;case CNY:return cnyRate;default:///港元return 1;}}}
}

系统提供人民币(CNY)美元(USD)英镑(GBP)价值转换相关推荐

  1. 人民币换算美元java计算_美元和人民币换算(人民币转换美元计算)

    货币兑换1人民币元=0.1626美元 1美元=6.1500人民币元 兑换为转换 数据仅供参考,交易时以银行柜台成交价为准 更新时间:2014-03-16 14:40 外币换人民币的 看最新现. 1美元 ...

  2. Python案例1—人民币与美元的汇率兑换V_7.0

    大家好,我是白菜胡萝丸子 初来乍到,请多指教!!! 目录:从案例中,学Python基础 项目导入 项目分析-理清思路 知识点学习--万丈高楼平地起 上机编程--动动手,让程序运行起来 参照代码 执行结 ...

  3. Java黑皮书课后题第3章:*3.31(金融:货币兑换)编写程序,提示用户输入从美元到人民币的兑换汇率,然后提示用户输入0表美元兑人民币、1表人民币兑美元。继而提示用户输入美元数量或人民币数量,兑换

    *3.31(金融:货币兑换)编写程序,提示用户输入从美元到人民币的兑换汇率,然后提示用户输入0表美元兑人民币.1表人民币兑美元.继而提示用户输入美元数量或人民币数量,兑换为另一种货币 题目 题目概述 ...

  4. 人民币和美元兑换的编程python_python人民币和美元转换

    设计一个python程序,计算人民币与其它货币之间汇两者为同向关系.人民币币值高则汇率也高.汇率是指本币与外币之间的比值.当人民币币值升高时,势必在同等汇率下,一定本币可以兑换外币,这就是人民币汇率高 ...

  5. 怎么用计算机美元和人民币怎么换算,美金换算人民币计算器(人民币和美元换算)...

    您可以登录我行主页,点击右侧"实时金融信息"下"外汇实时汇率"查看.(该页左侧可以点击外汇兑换计算器) 按1美元=6.6895元人民币 100.00 USD=6 ...

  6. 人民币对美元汇率中间价报6.7665元 下调73个基点

    中新网1月18日电 据中国外汇交易中心网站消息,1月18日人民币对美元汇率中间价为6.7665元,下调73个基点. 中国外汇交易中心网站截图 中国人民银行授权中国外汇交易中心公布,2019年1月18日 ...

  7. 美国防部DARPA发起地下空间挑战赛提供3百万美元巨奖

    (欢迎关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 地下环境越来越与全球安全相关,不断增长的人口和城市化要求军事和民用急救人员在人造隧道.地下城市空间和天然地下洞穴网 ...

  8. python人民币和美元转换

    人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‫‪‪‪‪‪‫‪‪‪‪‪‫‫‪‪‪‪‪‪‪‪‪‪‪‫‪人民币和美元间汇率固定为:1美元 = 6.78人民币.‪‪‪‪‫‪‪‪ ...

  9. python编程实现人民币和美元的互相转换_【PYTHON】人民币和美元币值转换

    问题 2571. -- [PYTHON]人民币和美元币值转换2571: [PYTHON]人民币和美元币值转换时间限制:1 Sec  内存限制:128 MB 提交:4  解决:4 [提交][状态][论坛 ...

  10. 人民币对美元汇率中间价报6.7615元 下调73个基点

    中新网1月16日电 据中国外汇交易中心网站消息,1月16日人民币对美元汇率中间价为6.7615元,下调73个基点. 中国人民银行授权中国外汇交易中心公布,2019年1月16日银行间外汇市场人民币汇率中 ...

最新文章

  1. 2021年大数据HBase(八):Apache Phoenix的基本介绍
  2. xor java_java基于密匙的xor加解密
  3. jquery订阅发布插件代码草稿,为jquery扩展jquery.publish,jquery.subscribe方法
  4. 音频处理基本概念及音频重采样
  5. PAT甲题题解-1001. A+B Format (20)-字符串处理,水
  6. IBASE archive pre-processing report RIBARCHV
  7. SAP CRM和SAP Hybris的action profile
  8. 星益小游戏平台源码 内置80多个在线小游戏
  9. 数组深拷贝_JavaScript之深浅拷贝
  10. C语言家谱管理程序,C语言实现家谱管理
  11. 超分20220218讨论
  12. 16套51单片机开发板资料共享下载,拼命整理
  13. C51行列键盘扫描程序
  14. MASM入门(二)MASM基本语法
  15. 定时获取AccessToken——萤石开放平台
  16. java 登陆邮箱_java如何登陆163邮箱,获取登陆用户的好友列表(1)
  17. 包的概念与常见内置模块
  18. 力扣(13.278)补8.23
  19. 名符其实的react下一代状态管理器hox
  20. 我的编程竞赛之路 ——中国大学生计算机编程第一人楼天城访谈

热门文章

  1. c语言贪吃蛇代码(菜单功能后续补充)
  2. Java随机产生两位数正整数
  3. 阿拉伯数字小写金额转换成中文大写金额C程序说明
  4. 传智杯第四届初赛 B小卡与质数2
  5. 操作系统实验六、死锁问题实验——单车道问题
  6. Technorati Blog Finder BETA
  7. Tableau的维度、度量和连续、离散的区分
  8. 浅谈 - 技术人员为什么更喜欢进行人身攻击?
  9. java作业中数据分析与设计_Java课程设计——博客作业教学数据分析系统(201521123091 李嘉廉)...
  10. Android Banner图片轮播