`
Brucegaochina
  • 浏览: 40221 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数字转成大写

阅读更多
1,本程序是一个关于数字转化成大写的小程序,支持小数,例如:123 一百二十三,56.78 五十六点七八
2,目前支持的最大位数到兆为止,请看程序

/**
 * 
 */
package com.img.collection;

import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * change the number from lower to upper(e.g.1:壹)
 * 
 * @author Bruce
 * @date Sep 24, 2011
 * @version
 */
public class UpperCaseCharacter {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String str = null;
		while (true) {
			System.out.println("Type number:");
			str = sc.next();
			if (!str.matches("\\d+\\.?\\d*")) {
				System.out.println("Type format is invalid");
				continue;
			}

			String[] numInfo = str.split("\\.");
			if (!str.matches("\\d+\\.\\d*")) {
				System.out.println(parser(numInfo[0]));

			} else {
				String before = numInfo[0];
				String tail = numInfo[1];
				System.out.println(parser(before, tail));
			}
			break;
		}

	}

	/**
	 * TODO
	 * 
	 * @param before
	 * @param tail
	 */
	private static String parser(String before, String tail) {
		String start = parser(before);
		int length = tail.length();
		StringBuilder sb = new StringBuilder();
		String end = null;
		for (int i = 0; i < length; i++) {
			char ch = tail.charAt(i);
			sb.append(convertNum(ch));
		}
		end = sb.toString();
		return start + "点" + end;

	}

	private static String convertNum(char c) {
		switch (c) {
		case '0':
			return "零";
		case '1':
			return "壹";
		case '2':
			return "贰";
		case '3':
			return "叁";
		case '4':
			return "肆";
		case '5':
			return "五";
		case '6':
			return "六";
		case '7':
			return "七";
		case '8':
			return "八";
		case '9':
			return "玖";
		default:
			break;

		}
		return null;

	}

	private static String convert(int c) {
		switch (c) {// 亿,千(万),百(万), 十(万), 万,千,百,十, 897654
		case 1:
			return "十";
		case 2:
			return "百";
		case 3:
			return "千";
		case 4:
			return "万";
		case 5:
			return "十";
		case 6:
			return "百";
		case 7:
			return "千";
		case 8:
			return "亿";
		case 9:
			return "十";
		case 10:
			return "百";
		case 11:
			return "千";
		case 12:
			return "万";
		case 13:
			return "兆";
		default:
			break;

		}
		return null;
	}

	/**
	 * TODO
	 * 
	 * @param str
	 * @return
	 */
	private static String parser(String str) {
		int length = str.length();

		StringBuilder sb = new StringBuilder();

		for (int i = 0; i < length; i++) {
			char ch = str.charAt(i);
			sb.append(convertNum(ch));
			if (length - 1 - i != 0) {
				sb.append(convert(length - 1 - i));
			}

		}
		return sb.toString();

	}// 909878.

}// 亿,千(万),百(万), 十(万), 万,千,百,十, 897654

分享到:
评论

相关推荐

    java将数字转换成大写字母

    Java 中实现数字金额到中文大写字符的转换是指将阿拉伯数字转换成中文大写的过程。本文将详细介绍 Java 实现数字金额到中文大写字符的转换的知识点。 知识点一: 数字金额到中文大写字符的转换的需求 在实际应用中...

    数字转换成大写

    输入12位以内的任何数字,可以转换成大写,如:123 执行后:壹佰贰拾参 双击文本框,清空执行结果

    Java人民币金额数字转换成大写

    Java 人民币金额数字转换成大写 Java 人民币金额数字转换成大写是 Java 面试中最常见的问题之一。本文将详细介绍如何使用 Java 实现人民币金额数字转换成大写的解决方案。 Java 中的 NumberFormat 类 在 Java 中...

    pb_函数_将小写数字转换成大写数字

    ### pb_函数_将小写数字转换成大写数字 #### 概述 本文档介绍了一个PB(PowerBuilder)函数,该函数用于将阿拉伯数字(小写数字)转换为中文大写数字。此功能在财务、银行以及其他需要精确且正式表示金额的场景中...

    小写数字转换成大写的方式

    非常好用的阿拉伯数字,转换成大写字母。很好,有需要的可以下载。

    数字转换成大写,例如:123 转换后:一百二十三

    总结来说,数字转换成大写汉字在Java中主要涉及以下几个知识点: 1. 字符串与数字之间的转换:`Integer.toString()` 和 `Integer.parseInt()` 方法。 2. 字符编码:了解ASCII码和汉字字符的关系。 3. 字符数组或...

    数字转换成大写字母代码

    根据给定的信息,本文将对“数字转换成大写字母代码”的实现原理及代码细节进行深入解析,旨在帮助初学者理解这一有趣而实用的技术。 ### 一、代码功能概述 该程序的主要目的是将输入的浮点数转换为一系列特定的...

    数字转换成大写中文

    总之,"数字转换成大写中文"是一项实用的编程任务,涉及到Java语言、字符串处理、用户交互以及命令行编程。通过Java Applet和命令行两种方式,可以满足不同场景下的使用需求。对于开发者来说,理解这些知识点并能...

    java数字转成大写金额

    小数都可以,这个真不错,赶紧下载来看看吧

    C# 将数字转换成大写人民币 调用微软语音引擎SAPI.SpVoice

    总的来说,结合C#的编程能力和微软的SAPI语音引擎,我们可以实现一个强大的数字转大写人民币并语音播报的功能。这不仅解决了常规转换方法无法处理大数字的问题,还增加了语音输出的交互性,对于财务系统或其他需要...

    阿拉伯数字转换成大写字体jsp

    本实验项目“阿拉伯数字转换成大写字体jsp”主要涉及到的知识点包括JSP基础、字符串操作、条件判断和数字字符的映射。 首先,我们要理解JSP的基本工作原理。JSP文件在服务器上被编译为Servlet,然后由Servlet来处理...

    word中阿拉伯数字转换成大写汉字.docx

    ### Word中阿拉伯数字转换成大写汉字的方法 在日常办公或财务文档处理中,经常会遇到需要将阿拉伯数字转换为大写汉字的情况。特别是在撰写合同、发票等正式文件时,使用大写汉字能够有效避免数字被篡改的风险。下面...

    数字转换成金额大写

    总的来说,数字转中文大写金额在Delphi中是一个实用的功能,需要对Delphi语言有良好的掌握,同时也需要熟悉财务领域的规则。通过学习和实践,不仅可以提升编程技巧,还能加深对财务规范的理解。

    数字转换为大写(JAVA)

    在Java编程中,将数字转换成大写是常见的需求,特别是在处理财务或会计相关的应用时。这个题目描述了一个简单的Java程序设计实验,其目的是将输入的浮点数值转换成中文金额的大写形式。以下是该实验涉及的主要知识点...

    Word2021中如何将阿拉伯数字转换成大写数字?.docx

    在Word2021中,将阿拉伯数字转换成大写数字是一个非常实用的功能,尤其对于财务报告、合同或正式文档的编写,确保数字的准确性和形式的规范性。以下是如何在Word2021中执行此操作的详细步骤: 1. **启动Word2021**...

    数字转换成大写数值

    金额转换,阿拉伯数字转换成中国传统形式。 例如:101000001010 转换为 壹仟零壹拾億零壹仟零壹拾圆整。

    Javascript-将人民币数字转换成大写形式.docx

    将人民币数字转换成大写形式的 JavaScript 函数 本文将介绍一个使用 JavaScript 编写的函数,用于将人民币数字转换成大写形式。该函数可以将一个给定的字符串,例如 "1234.55",转换成正确的中文货币描述,例如 ...

    阿拉伯数字转成大写汉字

    阿拉伯数字转成大写汉字

    用JAVA编写的类,把数字转成大写的人民币

    用JAVA编写的类,把数字转成大写的人民币。大家参考一吧

Global site tag (gtag.js) - Google Analytics