`

输入一个数值转换为汉字的大写

    博客分类:
  • java
 
阅读更多

还是要简洁,直接贴代码:

package Num2hanzi;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Num2hanzi {

	private static String[] hanzinum = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
	private static String[] hanziwei = {"","拾","佰","仟"};
	private static String[] hanziduan = {"","万","亿"};
	private static int num;//输入的数字
	private static int duannum = 0;
	private static int duantemp = 0;
	private static int[] duan = new int[10];
	private static int weinum = 0;
	private static int weitemp = 0;
	private static int[] wei = new int[100];
	
	public static void main(String args[]) throws IOException{
		//控制台读入数字
		num = Integer.parseInt((new BufferedReader(new InputStreamReader(System.in))).readLine());
		divideDuanWei(num);
		System.out.println(convert2hanzi());
	}
	
	//获取位数长度
	public static int getLength(int[] wei){
		int length = 0;
		for(int i=wei.length-1;i>=0;i--){
			if(wei[i] == 0){
				length++;
			}else {
				break;
			}
		}
		length = wei.length - (length--);
		return length;
	}
	//得到最终字符串
	public static String convert2hanzi(){
		int weilength = getLength(wei);
		int duanlength = getLength(duan);
		String convertResult="";		
		int i=duanlength-1;//段的数目
		int j=weilength-1;//位的数目
		int k;//起始汉字位
		if(weilength%hanziwei.length==0){
			k=hanziwei.length - 1;
		} else {
			k=weilength%hanziwei.length - 1;
		}
		int l = duannum -1;//起始段位
		for(;i>=0 && l>=0;i--,l--){
			for(;j>=0 && k>=0 ;j--,k--){
				if(k==0 && wei[j]==0) continue;//末位为零的时候,省略零
				convertResult += hanzinum[wei[j]];
				convertResult += hanziwei[k];
			}
			convertResult += hanziduan[l];
			k = hanziwei.length - 1;
		}
		return convertResult;
	}
	
	public static void divideDuanWei(int num){
		if(num>=0){
			//分段分位,4个数为一个段,1个数占一个位
			duantemp = num;
			while(duantemp > 0 && duantemp/10000 >= 0){
				duan[duannum] = duantemp%10000;
				weitemp = duan[duannum];
				while(weitemp>0 && weitemp/10 >= 0){
					wei[duannum*4 + weinum] = weitemp%10;
					weitemp /= 10;
					weinum++;
				}
				weinum = 0;
				duantemp /= 10000;
				duannum++;
			}			
		}
	}
}

 运行结果:


    
 

  • 大小: 31.1 KB
分享到:
评论

相关推荐

    数字大小写转换(转换为汉字大写)

    在MFC中实现数字到汉字大写的转换,可以创建一个函数,接受一个double或int作为参数,返回一个表示汉字大写的字符串。该函数可以使用字符串模板(std::string)和MFC的 CString 类来处理和返回结果。同时,利用MFC的...

    mysql 函数,可以将数字转换为中文大写形式

    mysql 函数,可以将数字转换为中文大写形式。大写数字是中国特有的数字书写方式,利用与数字同音的汉字取代数字,以防止数目被涂改。 据考证,大写数字最早是由武则天发明,后经朱元璋改进完善。

    易语言数字转换汉字大写

    易语言的数字转换汉字大写源码提供了方便的编程接口,使得开发者可以轻松地在自己的程序中实现这个功能,从而满足各种应用场景的需求。通过深入理解易语言的语法和数据处理方式,我们可以在此基础上扩展更多功能,...

    输入数字转换为大写金额输出

    ### 输入数字转换为大写金额输出 #### 背景介绍 在财务系统、银行交易以及其他需要处理货币的场合中,经常会遇到将数字转换成大写金额的需求。例如,在开具支票时,需要将数字金额转换成大写形式,以避免被篡改。...

    将数字金额转换为中文大写金额

    将数字金额转换为中文大写金额将数字金额转换为中文大写金额将数字金额转换为中文大写金额

    SQL中将日期转换为中文大写

    例如,你可以编写一个用户定义的函数,该函数接收日期作为输入,然后遍历日期的各个部分(年、月、日),分别转换为中文大写。对于年份,可以将数字转换为对应的中文字符;对于月份和日期,可以创建一个映射表,将1...

    C语言 金额转换大写

    本篇文章将详细解析一个C语言编写的函数`LowMoneyToUpper`,该函数能够将小写金额转换为大写形式,并且支持的最大金额为`2^31-1`,即大约21亿。 #### 函数定义及参数说明 ```c void LowMoneyToUpper(double ...

    js实现将数字转换为中文大写

    在提供的代码段中,我们可以看到定义了一个名为`changeNumMoneyToChinese`的函数,该函数接收一个参数`money`,即需要转换的阿拉伯数字金额。函数内部首先定义了一系列数组,用以存储中文数字字符、整数部分的单位、...

    数字金额转换为大写汉字

    读入一个浮点数值,转换为金额大写。整数只显示整数部分。含连续0只输出一个“零”。整圆显示“整”。

    数字转换为中文大写的4种算法

    这是最直观的方法,通过创建一个包含0-9对应中文大写数字的字典,然后遍历输入的阿拉伯数字字符串,查找每个数字对应的中文字符。例如: ```python num_dict = {'0': '零', '1': '壹', '2': '贰', '3': '叁', '4'...

    excel 纯函数 数字转换大写 数字转换财务大写 数字转换中文 数字转换汉字

    excel 纯函数 数字转换大写 数字转换财务大写 数字转换中文 数字转换汉字,里面有详细的介绍,非常适合初学者,操作简单方便,易学易用,希望能给您带来帮助。 适合excel2000及以上版本。

    小写金额转大写金额(C++)

    本问题涉及的是一个具体的C++程序设计任务:将小写金额转换为大写的中文表示。这个功能在财务软件、银行系统或者会计应用中非常有用,因为它能够帮助确保金额的正确性和规范性。 在中文中,大写金额的表示法与小写...

    excel中将阿拉伯数字转换成中文大写数字的函数方式.docx

    这个 VBA 代码定义了一个名为 NumberString 的函数,该函数将阿拉伯数字 x 转换成中文大写数字,format 参数指定了要使用的中文大写数字格式,type 参数指定了要返回的数字类型。然后,我们可以在 Excel 表格中使用...

    java实现数字转换人民币中文大写工具

    Java 实现数字转换人民币中文大写工具 ...Java 实现数字转换人民币中文大写工具是一个非常实用的工具,能够满足人事业务系统中的各种需求,同时也可以应用于其他领域,例如财务报表、日常业务处理等。

    用C++编写数字转换成汉字大写的程序

    接着,我们需要设计一个函数,接收数字作为输入,通过遍历数字的每一位,从映射表中查找对应的汉字,然后组合成完整的汉字大写数字字符串。 程序可能需要处理的特殊情况包括: 1. 零的处理:在某些情况下,如1001...

    java将数字转换成大写字母

    知识点一: 数字金额到中文大写字符的转换的需求 在实际应用中,经常需要将数字金额转换成中文大写字符,以便于显示或打印。例如,在财务报表或发票上,金额需要显示为中文大写字符。 知识点二: Java 实现数字金额...

    数字金钱转换成中文大写

    例如,在Python中,可以创建一个函数,接收数字参数,然后根据上述规则进行转换: ```python def digit_to_chinese(num): # 定义数字到中文的映射和单位 digit_map = {'0': '零', '1': '壹', '2': '贰', '3': '叁...

    Excel数字转换为中文大写.docx

    例如,在 Excel 中,我们可以使用单元格格式法或函数更正法来将数字转换为中文大写数字。在 Word 表格中,我们可以使用编号功能来将数字转换为中文大写数字。 扩展应用 在扩展应用中,我们还可以使用域符号来将...

    转换成中文大写金额

    通常,这类方法会接受一个数字作为输入,然后将其转换为中文的千、百、十、个位的大写形式。例如,数字 "123456.78" 可能会被转换为 "壹拾贰万叁仟肆佰伍拾陆元柒角捌分"。 `MoneyUtil` 类可能是工具类,提供了静态...

    MySQL函数-数字转换为大写中文

    MySQL函数 数字转中文 非金额 处理数据类型 decimal(21,6)

Global site tag (gtag.js) - Google Analytics