java基础学习之------金额转换
金额转换,实现将整数金额转换成对应格式的大写中文格式,实现如下效果(最高到百万,7位)
输入:5999,返回结果为"零佰零拾零万伍仟玖佰玖拾玖元"
1.判断输入的数据是否合理
while (true) {money = sc.nextInt();if (money >= 0 && money <= 999999) {break;} else {System.out.println("输入错误,请重新输入:");}}
2.定义一个方法,能够将数字转换为对应的中文大写字母,然后拼接成字符串
getCapitalNumber方法
//转换大写中文public static String getCapitalNumber(int number) {String[] arr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };return arr[number];}
String moneyStr = "";while (money!=0) {//得到当前最后一位int ge = money % 10;//转换为中文String CapitalNumber = getCapitalNumber(ge);//去掉最后一位money = money / 10;//字符串拼接,从右往左moneyStr = CapitalNumber + moneyStr;}
3.接着补零至长度为要求的7位,拼接
int count = 7-moneyStr.length();for (int i = 0; i < count; i++) {moneyStr = "零"+moneyStr;}
4.最后循环将得到的字符串每个索引对应的字符依次拼接,即为要求的结果
String[] arr = {"佰", "拾", "万", "仟", "佰", "拾", "元"};String lastResult = "";for (int i = 0; i < moneyStr.length(); i++) {char c = moneyStr.charAt(i);lastResult = lastResult+c+arr[i];}
完整代码
package com.wzw.Myself;import java.util.Scanner;public class Myself1 {public static void main(String[] args) {//1.键盘录入,判断数据范围是否合适Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数");int money;//循环判断输入数据是否合理,不合理则继续输入while (true) {money = sc.nextInt();if (money >= 0 && money <= 999999) {break;} else {System.out.println("输入错误,请重新输入:");}}//2.将数字转化为字符串,定义方法将数字转换为中文大写String moneyStr = "";//当循环至money为0时即为循环结束的条件while (money!=0) {//得到当前最后一位int ge = money % 10;//转换为中文String CapitalNumber = getCapitalNumber(ge);//去掉最后一位money = money / 10;//进行字符串拼接,从右往左,直接得到正确结果moneyStr = CapitalNumber + moneyStr;}System.out.println(moneyStr);//3.若字符串长度不够七,补足零至长度为七int count = 7-moneyStr.length();for (int i = 0; i < count; i++) {moneyStr = "零"+moneyStr;}System.out.println(moneyStr);//4.定义数组,进行拼接String[] arr = {"佰", "拾", "万", "仟", "佰", "拾", "元"};String lastResult = "";for (int i = 0; i < moneyStr.length(); i++) {char c = moneyStr.charAt(i);lastResult = lastResult+c+arr[i];}System.out.println(lastResult);}//转换大写中文public static String getCapitalNumber(int number) {String[] arr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };return arr[number];}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
