概述
如例
输入 2135 ,==》输出 零佰零拾零万贰仟壹佰叁拾伍元
输入 789 ,==》输出 零佰零拾零万零仟柒佰捌拾玖元
分析
1、当输入2135时,我们可以先将其数字全部转换为大写 ->贰壹叁伍
2、在 贰壹叁伍 前面补零 ->零零零贰壹叁伍
3、将单位 佰拾万仟佰拾元 和 2 中对应已经转换为大写的对应位置进行拼接,比如 '佰'插入到 '零' 后面,以此类推, 后面的 '贰壹叁伍' 后面分别插入 '仟佰拾元'
代码演示
1、进行输入操作,并进行判断是否超过七位数或者输入的数为负数,或输入不合法的数。
while(true){
Scanner sc = new Scanner(System.out);
System.out.println("输入数字:");
number = sc.nextInt();
if(number >= 0 && number <= 999999){
break;
}else{
System.out.println("输入无效!");
}
}
2、定义一个方法 getCapitalNumber 用来将数字转换为对应的大写。
public static String getCapitalNumber(int number){
String[] str = {"零", "壹", "贰", "叁", "肆", "伍", "陆","柒","捌","玖"};
return str[number];
}
3、数字转换为大写的过程
numberStr = "";
while(true){
ge = number % 10;//取到输入金额的最后一位数字
String capitalNumber = getCapitalNumber(ge);//将金额的最后一位数字传入getCapitalNumber()方法中,转换为对应的大写
numberStr = capitalNumber + numberStr;//转换为大写后的数字进行拼接
number = number / 10;
//结束条件 --数字遍历完
if(number == 0){
break;
}
}
4、在转换为大写后,不足七位的要在前面补零,零的个数为 7- (输入金额的位数)。
int count = 7 - numberStr.length();
for(int i = 0; i < count; i++){
numberStr = "零" + numberStr;
}
5、将单位与对应的大写数字拼接
String result = "";
String[] arr = {"佰","拾","万","仟","佰","拾","元"};
for(int i = 0; i < numberStr; i++){
char c = numberStr.charAt(i);
result = result + c + arr[i];
}
6、放入完整的代码。
package string;
import java.util.Scanner;
public class stringdemo5 {
public static void main(String[] args) {
int number;
String numberStr = "";
//判断输入的是否正确
while (true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
number = sc.nextInt();
if(number >=0 && number <= 9999999) {
break;
}else{
System.out.println("金额无效!");
}
}
//将输入的数字逐个转换为大写
while(true){
int ge = number % 10;
String capitalNumber = getCapitalNumber(ge);
numberStr = capitalNumber + numberStr;
number = number / 10;
if(number == 0){
break;
}
}
// System.out.println(numberStr);
//前面补零
int count = 7-numberStr.length();
for(int i = 0;i < count; i++){
numberStr = "零" + numberStr;
}
// System.out.println(numberStr);
//插入单位
String result = "";
String[] arr ={"佰","拾","万","仟","佰","拾","元"};
for (int i = 0; i < numberStr.length(); i++) {
char c = numberStr.charAt(i);
result = result + c + arr[i];
}
System.out.println(result);
}
//小写转换为大写
public static String getCapitalNumber(int number){
String[] str = {"零", "壹", "贰", "叁", "肆", "伍", "陆","柒","捌","玖"};
return str[number];
}
}
最后
以上就是缥缈小笼包为你收集整理的算法--java字符串之金额转换的全部内容,希望文章能够帮你解决算法--java字符串之金额转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复