使用Java怎么将小写字符串转换成大写字符串?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。
public class RMBChange { private static String[] nums = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; // 单位还可以往上 private static String[] unit = {"元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万"}; // 小数位如还有需求可以直接往这个数组里加, private static String[] countNum = {"角", "分"}; public static String change(String money) { // 过滤空 if (money == null || "".equals(money)) { return ""; } StringBuilder res = new StringBuilder(); String[] splitStr = money.split("\\."); if (splitStr.length > 2) { throw new RuntimeException("输入的参数不是数字!"); } String front = splitStr[0]; // 用于判定0的显示 boolean isZero = true; if (front.length() > unit.length) { throw new RuntimeException("输入的参数大于万亿!"); } for (int i = 0; i < front.length(); i++) { // 整数位处理 int dw = front.length() - i - 1; // 用ASCII码获得数字 int index = (front.charAt(i) - '0'); if (index == 0) { isZero = true; if (dw == 0 || dw == 4 || dw == 8) { // 元,万,亿需要拼接 res.append(unit[dw]); } } else { if (isZero && i != 0) { // 多个0只显示一个 res.append(nums[0]); } isZero = false; res.append(nums[index]); res.append(unit[dw]); } } // 判断是否有小数位 if (splitStr.length > 1) { // 小数位处理,如果不需要则直接删除这个if及内部所有内容 isZero = true; String back = splitStr[1]; if (back.length() > countNum.length) { throw new RuntimeException("小数位小于【" + countNum[countNum.length - 1] + "】!"); } for (int i = 0; i < back.length(); i++) { int index = (back.charAt(i) - '0'); if (index == 0) { isZero = true; } else { if (isZero && i != 0) { res.append(nums[0]); } isZero = false; res.append(nums[index]); res.append(countNum[i]); } } } return res.toString(); } }
测试数据
public static void main(String[] args) { System.out.println(change("9999999999999.99")); // 玖万玖仟玖佰玖拾玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖元玖角玖分 System.out.println(change("5020055606500.00")); // 伍万零贰佰亿零伍仟伍佰陆拾万零陆仟伍佰元 System.out.println(change("4001500050.16")); // 肆拾亿零壹佰伍拾万零伍拾元壹角陆分 System.out.println(change("7854416")); // 柒佰捌拾伍万肆仟肆佰壹拾陆元 System.out.println(change("9556")); // 玖仟伍佰伍拾陆元 System.out.println(change("10086.0")); // 壹万零捌拾陆元 System.out.println(change("263341.26")); // 贰拾陆万叁仟叁佰肆拾壹元贰角陆分 System.out.println(change("3651.06")); // 叁仟陆佰伍拾壹元零陆分 System.out.println(change("1.00")); // 壹元 System.out.println(change("300.00")); // 叁佰元 System.out.println(change("2007.01")); // 贰仟零柒元零壹分 }
输出结果
玖万玖仟玖佰玖拾玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖元玖角玖分
伍万零贰佰亿零伍仟伍佰陆拾万零陆仟伍佰元
肆拾亿零壹佰伍拾万零伍拾元壹角陆分
柒佰捌拾伍万肆仟肆佰壹拾陆元
玖仟伍佰伍拾陆元
壹万零捌拾陆元
贰拾陆万叁仟叁佰肆拾壹元贰角陆分
叁仟陆佰伍拾壹元零陆分
壹元
叁佰元
贰仟零柒元零壹分
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。