今天看到可以用toCharArray()可以将字符串转换成数组,跟switch结合做个数字转中文大写金额格式的Java小程序,思路也很简单,全篇用switch。由于是字符串,无需担心输入数字过大,可以无限输入,十百千这类名称你也可以无限扩充。先上运行图再上代码,如有不妥请指出:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9cGVPBzZ61UeRRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zNxgjM0AzM4EjNyUDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // 创建输入扫描器
System.out.println("请输入要转换大写的金额:");
String num=scan.next();
char[] array=num.toCharArray(); //字符串转换为字符数组
for(int i=0;i<num.length();i++){ //挨个调用替换中文输出
switch (array[i]){
case '1': System.out.print("壹");break;
case '2': System.out.print("贰");break;
case '3': System.out.print("叁");break;
case '4': System.out.print("肆");break;
case '5': System.out.print("伍");break;
case '6': System.out.print("陆");break;
case '7': System.out.print("柒");break;
case '8': System.out.print("捌");break;
case '9': System.out.print("玖");break;
case '0': System.out.print("零");break;
default: System.out.println("输入有误");
}
switch (num.length()-i-1){ /*这段我用来判断字符属于哪个权位 举例:
数字字符 8 8 8 8 8 8 8 8
数组标识 0 1 2 3 4 5 6 7
字符串长度8,我在十位数字(标识为6的)前面输出“佰”,只需循环到i=5再输出即可,8-5-1=2
这里我本来是想把输入的字符串倒置,然后再转换数组,再通过i确定位数输出十百千之类的
后来感觉太麻烦,倒置后换成数组,中间加了十百千还要赋值给变量然后再倒置回来恢复正序
因此这里使用length()字符长度减去i(可能有其他更简便方法欢迎指出)
*/
case 1: System.out.print("拾"); break;
case 2: System.out.print("佰"); break;
case 3: System.out.print("仟"); break;
case 4: System.out.print("萬"); break;
case 5: System.out.print("拾"); break;
case 6: System.out.print("佰"); break;
case 7: System.out.print("仟"); break;
case 8: System.out.print("億"); break;
case 9: System.out.print("拾"); break;
case 10: System.out.print("佰"); break;
case 11: System.out.print("仟"); break;
case 12: System.out.print("萬"); break;
case 13: System.out.print("兆"); break;
case 14: System.out.print("拾"); break;
case 15: System.out.print("佰"); break;
case 16: System.out.print("仟"); break;
case 17: System.out.print("萬"); break;
case 18: System.out.print("京"); break;
case 19: System.out.print("拾"); break;
case 20: System.out.print("佰"); break;
}
}
}
}