java String练习(金额转换)

练习要求:

 如:

2135元   要求转换为 ------>  零佰零拾ni零万贰仟壹佰叁拾伍元

代码:

import java.util.Scanner;public class test {public static void main(String[] args) {//键盘输入金额 并判断数据是否有效Scanner sc = new Scanner(System.in);int money;while (true) {System.out.println("请输入一个金额(单位元):");money = sc.nextInt();if (money >= 0 && money <= 9999999) {break;} else {System.out.println("输入有误 请重新输入");}}System.out.println(money);//定义一个字符串 用于拼接String MoneyS = "";//得到数值 然后调用getMoney方法 变成大写// 得到 money中每一位数字while (true) {//从左往右获取数据int ge = money % 10;//调用方法 返回大写String number = getMoney(ge);//将转换后的大写拼接到字符串中MoneyS = number + MoneyS; //这里必须是number + Money 不然拼接的顺序会颠倒//去掉数据money = money / 10;//如果将每一位都获取到了 money记录的将为0  则将结束循环if (money == 0) {break;}}//在前面补零 补齐七位int count = 7 - MoneyS.length();for (int i = 0; i < count; i++) {MoneyS = "零" + MoneyS;}//插入单位 定义一个数组表示单位String[] dw_arr = {"佰", "拾", "万", "仟", "佰", "拾", "元"};//遍历MoneyS 然后将数组插入字符串//定义一个字符串 将最终结果拼接String result = "";for (int i = 0; i < MoneyS.length(); i++) {char c = MoneyS.charAt(i);//将大写数字和单位拼接到result中result = result + c + dw_arr[i];}//打印输出System.out.println(result);}//使用查表法 将数字变成大写的中文public static String getMoney(int number) {//定义数组 跟数字产生对应关系String[] arr = {"零", " 壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};//通过索引来返回结果return arr[number];}

 执行效果:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部