java数字转中文_Java程序:输入数字转换成中文输出
功能看似简单,但真正实现起来也不是易事
现在贴出代码,欢迎各位幕友提出建议!!
package test01;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("欢迎使用数字转换器(Designed by chph)!!");
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;
}
}
java数字转中文_Java程序:输入数字转换成中文输出相关推荐
- java输入数字返回字符串_java Scanner输入数字、字符串
package java05; import java.util.Scanner;//1.导包 /* Scanner类的功能,可以实现键盘输入数据,到程序当中 引用类型的一班使用步骤: 1.导包 2. ...
- python将数字转变为中文读法-python中将阿拉伯数字转换成中文的实现代码
代码如下: #!/usr/bin/python #-*- encoding: utf-8 -*- import types class NotIntegerError(Exception): pass ...
- java 修改pdf图片_java代码将pdf 转换成图片加缩略图 -3
写的这些功能主要就是放在定时任务上,每分钟查询是否要有转换的图片,有的换然后就转换,前端展示图片就可以,大家可以浏览图片.不用在去下载哪些文件了. 下面的是pdf转图片加缩略图的 import jav ...
- c语言输入整数要求输出字符,求C语言 将输入整数转换成字符串输出!
#include #include int power(int a, int n) { return pow((double)a, n); } #define pow power int main() ...
- 中文格式_财务必会Excel技巧,将数字转换成中文的5种方式
你还在纠结如何把数字转换成中文大小写吗?下面和大家一起来学习把数字转换成中文的5种方法. 方式一:NUMBERSTRING函数 语法=NUMBERSTRING(数值,选项) 数值:被转换为中文字符串的 ...
- c#金额转换成中文大写金额
c#金额转换成中文大写金额 原文:c#金额转换成中文大写金额 2018-08-24 转别人 c#金额转换成中文大写金额 /// <summary>/// 金额转换成中文大写金额/// &l ...
- java异常练习:要求用户输入数字,捕获并处理用户输入错误的异常,给用户进行提示
java异常练习:要求用户输入数字,捕获并处理用户输入错误的异常,给用户进行提示 参考文章: (1)java异常练习:要求用户输入数字,捕获并处理用户输入错误的异常,给用户进行提示 (2)https: ...
- C语言-如何将用户输入的金额数字转换成中文大写?
实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...
- JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)
将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...
最新文章
- vmware ESXI6.7 设置 Nvidia 显卡直通
- 我可以在Android版式中加下划线吗?
- 2021年下半年网络规划设计师下午真题及答案解析
- 【论文阅读】PrivPy: General and Scalable Privacy-Preserving Data Mining
- spark1.0和2.0的区别_Spark2.1.0——Spark初体验
- mysql命令导出表结构和数据_mysql-用命令导出、导入表结构或数据
- 15. 注意string实现的多样性
- Git 如何拉取 github 上的代码
- atitit.高性能遍历 文本文件行 attilax总结
- mysql vc运行库_VC++运行库安装
- MATLAB Win10分辨率低的蜜汁改进方法
- iOS绘制1像素的线
- windows睡眠和休眠的区别
- IDEA:Push rejected 解决方式
- leetcode之GaryCode
- 《面试系列篇》——Java这些最基础的知识,你还记得多少?
- HTTP 代理原理及实现
- 模式匹配与正则表达式(一)
- 《信用管理》--信用评分方法
- 爬虫软件尝试-后羿采集器:批量免费抓取网页数据