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 ...
随机推荐
- 《代码大全2》读书笔记 Week3
<代码大全2>第六.七章 作者在第六章中从抽象数据类型(Abstract Data Type)出发阐释类(class)的概念,给出创建类的原因以及创建高质量的常涉及的设计问题.抽象数据类型 ...
- opencv2.4.9+vs2012安装配置
需要下载并安装vs2012 http://pan.baidu.com/s/1qXP76CO 第一次启动会提示要求输入激活序列号,请输入:YKCW6-BPFPF-BT8C9-7DCTH-QXG ...
- Java—Map浅入
写支付签名的时候遇到了Map一家,就简单的比较了一下,于是乎先打印看看结果 Map<String,String> hashMap1 = new HashMap<>();hash ...
- eclipse打包jar及第三方jar包一起导出(生成SDK)
一.前言: 因公司需求,需要将某个工具类供外部使用,所以需要生成jar文件.但是jar内还包含了第三方的jar,普通的打包方式无法将lib下的第三方jar包提取. 这将会导致工具jar无法运行,或Ex ...
- Mysql 查询表中某字段的重复值,删除重复值保留id最小的数据
1 查询重复值 ); 2 删除重复值 -- 创建临时表 ) ); -- 把重复数据放进临时表 INSERT Hb_Student_a SELECT id,studentNumber FROM Hb_S ...
- js求100以内的素数
//打印2~100之间的数 ; i< ; i++){ var a = true; ; j < i; j++){ //判断i能否被j整除 ){ //能被整除则说明不是素数,修改布尔值为fal ...
- Python自学:第四章 复制列表(1)
# -*- coding: GBK -*- my_foods = ['pizza', 'falafel', 'carrot cake'] friend_foods = my_foods[:] prin ...
- Java中的反射该如何使用?
1. 什么是反射 反射是一种功能强大且复杂的机制.Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性.对于任何一个对象,我们都能够对它的方法和属性进行调用.我们把这种 ...
- thinkphp模块设计
3.2发布版本自带了一个应用目录结构,并且带了一个默认的应用入口文件,方便部署和测试,默认的应用目录是Application(实际部署过程中可以随意设置). 通常情况下3.2无需使用多应用模式,因为大 ...
- bzoj1012题解
[解题思路] 强制在线线段树/树状数组,没什么好说的..复杂度O(mlog2m)(线段树)或O(mlog22m)(树状数组). [参考代码] (还naive的时候写的zkw真是翔..) #includ ...