java实现数字转中文大写
package cn.aikang.ChineseC; import java.util.Scanner; /** * @Description: TODO(这里用一句话描述这个类的作用) * @Author aikang * @Date 2019/10/12 11:52 */ public class ChineseCapitalization { //用户输入数字字符串解析为中文大写 //1.定义主方法 public static void main(String[] args) { //调用用户输入 String userInput = userScanner(); //判断输入是否是纯数字 //定义一个字符串用来接收转换后数据 String Result = null; if (userInput == null) { System.out.println("非法字符"); } else if(userInput.startsWith("0")){ String userStr = userInput.substring(1); //调用数字大写匹配功能传入数字字符串 Result = transFormation(userStr); }else{ Result = transFormation(userInput); } //判断返回的字符串是否是零结尾如果是则删除 if (Result.endsWith("零")){ System.out.println(Result.replace("零", "")); }else{ System.out.println(Result); } } //定义一个用户输入功能 public static String userScanner() { //1.创建scanner类 Scanner scanner = new Scanner(System.in); //2.创建变量存储数字 String num = null; //3.提示用户 System.out.println("请输入数字"); //4.判断用户输入是否是纯数字 if (scanner.hasNextInt()) { num = scanner.nextLine(); } return num; } //定义一个匹配功能 public static String transFormation(String userInput) { //1.定义一个匹配数组 char[] capitaLization = {'零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'}; char[] company = {'拾', '佰', '仟','万'}; //2.把传入的字符串转换为数组遍历进行替换数字 //2.1定义一个字符串存储拼接 String p = ""; //2.2定义字符串变量用作返回值 String numFinal = ""; //字符串转换为数字 char[] ps = userInput.toCharArray(); //定义变量统计单位下标 int a = 0; //倒序循环字符串 for (int i = ps.length - 1; i >= 0; i--) { //如果单位下标不越界 if(i == ps.length - 1){ p += capitaLization[Integer.parseInt(String.valueOf(ps[i]))]; }else if (a < company.length) { p += String.valueOf(company[a]); p += capitaLization[Integer.parseInt(String.valueOf(ps[i]))]; a++; } else { //如果下标越界了然下标回到1这里使用0 a = 0; p += String.valueOf(company[0]); p += capitaLization[Integer.parseInt(String.valueOf(ps[i]))]; a++; } } //如果字符串长度大于9说明到亿位所以替换亿位和万位的单位 //1.替换好的字符串转为数组 玖拾捌佰柒仟陆拾伍佰肆仟叁拾贰佰壹 char[] userI = p.toCharArray(); //如果字符数组长度大于17则说明有亿位 if(userI.length>=17){ //替换亿位单位15 userI[15] = '亿'; } //反转字符数组 //倒循环数组对p赋值 for (int i = userI.length-1; i >=0; i--) { numFinal += String.valueOf(userI[i]); } return numFinal; } }
java实现数字转中文大写的更多相关文章
- JAVA处理数字与中文数字互转(最大处理数字不超过万兆即:9999999999999999.9999)
package practice; import java.util.Arrays; /** * 数字与中文数字互转(最大处理数字不超过万兆即:9999999999999999.9999) * @au ...
- 【OBJC】数字转中文大写
博客园都不知道怎么外链图片…… - (void)numToString:(double)num{ ; NSMutableString *szChMoney = [[NSMutableString al ...
- PHP人民币金额数字转中文大写的函数
<?php header("Content-Type:text/html;charset=utf-8"); error_reporting(2); function cny( ...
- SQL 数字转为中文大写
USE [SPECIAL_BLD]GO SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO CREATE FUNCTION [dbo].[get_upper] ...
- 数字转中文大写=> 1234=> 一千二百三十四
# -*- coding: utf-8 -*- # 最大值:九兆九千九百九十九亿九千九百九十九万九千九百九十九 import re p = ['', '十', '百', '千', '万', '十', ...
- java 数字转中文
java代码 数字转中文,该方法只做了对int型整数的转换 private static String numberToChinese(int number) { String[] numbers = ...
- XtraReport报表入库单数字转中文大写数字
先看看打印入库单的效果图,看如下: 客户要求合计一行,要求大写中文数字.XtraReport报表是如何做出以上图的效果呢?因为是要把数字转成大写中文数字,得先准备数字转大写中文数字的函数.因网上有很多 ...
- Java 阿拉伯数字转换为中文大写数字
Java 阿拉伯数字转换为中文大写数字 /** * <html> * <body> * <P> Copyright 1994 JsonInternational&l ...
- Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...
随机推荐
- 4. Jmeter主界面的介绍
上篇文章我们已经介绍过如何安装Jmeter.那么在本篇文章我们将要介绍Jmeter主界面有哪些功能.我们双击jmeter.bat,如下图所示(注意我这是jmeter5.0版本): 我们将Jmter主界 ...
- PAT_A1067#Sort with Swap(0, i)
Source: PAT A1067 Sort with Swap(0, i) (25 分) Description: Given any permutation of the numbers {0, ...
- 拾遗:关于“尾递归”- tail recursion
定义[个人理解]: 尾递归,即是将外层得出的常量计算因子,以函数参数的形式逐层向内传递,即内层调用整合外层调用的产出,整个递归的结果最终由最内层的一次函数调用得出:而通常的递归则是外层调用阻塞.等待内 ...
- Java控制台
Console类的目的是使Java程序和控制台之间的交互更容易.Console类是java.io包中的一个实用程序类,用于访问系统控制台.控制台不能保证在所有机器上的Java程序中可访问. 例如,如果 ...
- echarts的图表根据父容器大小的改变而改变(弹窗easy-ui的window窗口)
1.echarts的图表只绘制一次,所以要想大小随着父容器变化就得调方法重新绘制.所以把绘制图表的方法提出来. <div class="echart"> <div ...
- WdatePicker设置时间与倒计时
之前苦于jQuery的datetimepicker插件不知道如何设置秒数,用了同学推荐的WdatePicker,真心好用. 相关文档用法可以上http://www.my97.net/dp/index. ...
- Codeforces 1151E 统计贡献
题意:给你一个数组a,设函数f(l, r)为数组a中权值在[l, r]之间的连通块的数目,比如a = [1, 3, 2, 1], f(1, 2) = 2, 连通块是位置1和位置3,4.问Σ(i = 1 ...
- webpack初始化
1. 安装node js 2. 安装npm 3. 在桌面新建一个文件夹 4.利用cmd 进入文件夹 5.在cmd中创建一个新文件夹并且进入 6.npm init -y 生成page.json 7. ...
- python异常整理
一.操作excel 时异常 1.PermissionError: [Errno 13] Permission denied (1)原因:权限错误:[Errno 13] 权限被拒绝 错误产生的原因是文件 ...
- c 语言函数分析
第一个参数为指向线程标识符的指针. 第二个参数用来设置线程属性. 第三个参数是线程运行函数的起始地址. 最后一个参数是运行函数的参数. result = pthread_create(&tid ...