• java程序练习:输入数字转换成中文输出(金额相关)


    //题目,做一个输入金额数字,输出转换成中文的金额名称。

    public class Test {

    public static void main(String[] args) {
    System.out.println("欢迎使用数字转换器(Designed by wujj)!!");
    String in;
    boolean isRunning = true;
    Scanner scanner = new Scanner(System.in);
    while (isRunning) {
    System.out.println("请输入一串纯整数:");
    in = scanner.next();
    String input = in.trim();
    if (!isNum(input)) {
    System.out.println("输入类型错误!!!你应该输入12位以内纯正整数!!!");
    continue;
    } else {
    System.out.println("转换成中文数字为:" + num2Ch(input));
    }
    System.out.println("是否继续查询? 1.是 2.不,谢谢");
    int isContinue = scanner.nextInt();
    if (isContinue == 1) {
    continue;
    } else if (isContinue == 2) {
    System.out.println("程序结束!欢迎下次使用!!!");
    isRunning = !isRunning;
    } else {
    System.out.println("指令输入错误,直接退出!!");
    System.out.println("程序结束!欢迎下次使用!!!");
    isRunning = !isRunning;
    }
    }
    System.out.println("请输入任意数字退出控制台...");
    in = scanner.next();
    scanner.close();
    }

    private static String num2Ch(String input) {
    input = Long.parseLong(input) + "";
    if (input.equals("0")) {
    return "零";
    }
    // int length = input.length();
    // char[] arr1 = { 'O', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '百',
    // '千', '万', '亿' };
    // char[] arr2 = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾', '佰',
    // '仟', '万', '亿' };
    StringBuffer s = new StringBuffer();
    switch (4 - (input.length() % 4)) {
    case 1:
    s = new StringBuffer("0").append(input);
    break;
    case 2:
    s = new StringBuffer("00").append(input);
    break;
    case 3:
    s = new StringBuffer("000").append(input);
    break;
    default:
    s = new StringBuffer("").append(input);
    }
    String[] arr = new String[s.length() / 4];
    for (int i = 0; i < s.length(); i = i + 4) {
    if (i + 4 == s.length())
    arr[i / 4] = s.toString().substring(i);
    else
    arr[i / 4] = s.toString().substring(i, i + 4);
    }
    StringBuffer output = new StringBuffer("");
    switch (s.length() / 4) {
    case 3:
    output = output.append(trans(arr[s.length() / 4 - 3])).append("亿");
    case 2:
    if (Integer.parseInt(arr[s.length() / 4 - 2]) == 0 && Integer.parseInt(arr[s.length() / 4 - 3]) != 0)
    output = output.append("零");
    else
    output = output.append(trans(arr[s.length() / 4 - 2])).append("万");
    case 1:
    output = output.append(trans(arr[s.length() / 4 - 1]));
    break;
    }
    return output.toString();
    }

    // 四位数转换函数
    private static String trans(String string) {
    String s = Integer.parseInt(string) + "";
    StringBuffer output = new StringBuffer("");
    String[] arr = { "", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
    // for (int i = 0; i < s.length(); i++) {
    // if (s.charAt(i) != 0) {
    // s = s.substring(i);
    // break;
    // }
    // }
    if ((Integer.parseInt(s) + "").equals("")) {
    return "";
    } else {
    switch (s.length()) {
    case 4:
    if (Integer.parseInt(string.charAt(0) + "") == 0) {
    output = output.append("零");
    }else {
    output = output.append(arr[Integer.parseInt(s.charAt(0) + "")]).append("千");
    }
    case 3:
    if (Integer.parseInt(string.charAt(3) + "") != 0 && Integer.parseInt(string.charAt(1) + "") == 0 && Integer.parseInt(string.charAt(0) + "") != 0) {
    output = output.append("零");
    }else {
    output = output.append(arr[Integer.parseInt(string.charAt(1) + "")]);
    }
    if (Integer.parseInt(string.charAt(1) + "") != 0) {
    output = output.append("百");
    }
    case 2:
    if (Integer.parseInt(string.charAt(3) + "") != 0 && Integer.parseInt(string.charAt(2) + "") == 0 && Integer.parseInt(string.charAt(1) + "") != 0
    && Integer.parseInt(string.charAt(0) + "") != 0) {
    output = output.append("零");
    }else{
    output = output.append(arr[Integer.parseInt(string.charAt(2) + "")]);
    }
    if (Integer.parseInt(string.charAt(2) + "") != 0) {
    output = output.append("十");
    }
    case 1:
    if (Integer.parseInt(string.charAt(3) + "") != 0) {
    output = output.append(arr[Integer.parseInt(string.charAt(3) + "")]);
    }
    break;
    }
    return output.toString();
    }
    }

    // 判断是否是纯数字输入
    private static boolean isNum(String s) {
    String num = "0123456789";
    int length = 0;
    for (int i = 0; i < s.length(); i++) {
    for (int j = 0; j < num.length(); j++) {
    if (s.charAt(i) == num.charAt(j)) {
    length++;
    break;
    }
    }
    }
    return (s.trim().length() != 0 && length == s.length() && length <= 12 && length >= 0) ? true : false;
    }

    }
  • 相关阅读:
    包介绍、日志模块及深浅拷贝
    一些常用模块
    RE模块(正则)
    软件开发规范
    模块及模块导入
    一些常用的内置函数总结
    迭代器、可迭代对象、迭代器对象
    多层装饰器例子
    闭包函数和装饰器
    递归、二分法、三元表达式及内置函数和匿名函数
  • 原文地址:https://www.cnblogs.com/tuanz/p/11882492.html
Copyright © 2020-2023  润新知