`
fbj203
  • 浏览: 3040 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

找个地方存代码_大写数字转阿拉伯

 
阅读更多
含有大写数字的视频标题排序不理想,特转换后比较
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Compare {

	public static String num = "零一二三四五六七八九十";
	public static String numF = " 十百千万   亿";
	
	public static String numReg = "[零一二三四五六七八九十]";
	public static String numFReg = "[十百千万亿]";
	//public static String numF[][] = {{"十","1"}  , {"百" , "2"} , {"千" , "3"} , {""}};
	public static int compare(String s1 , String s2){
		
		int i = format(s1) - format(s2);
		if(i == 0){
			return s1.compareTo(s2);
		}else {
			return i;
		}

		
	}
	
	public static int format(String s){
		
		int mark = hasNum(s);
		int value = 1;
		int all = 0;
		int last = 0;
		int lastPow = 0;
		if(mark >= 0){
				
			while (s.length() > mark) {
					
				
				//当前数字是否可以算出数据
				value = num.indexOf(s.charAt(mark));
				if(value >= 0 && value != 10){
					all += value;
					if(mark !=0 && num.indexOf(s.charAt(mark -1)) != 10){
						last = value;
					}else {
						last += value;
					}
					
					
				}else {
					value = numF.indexOf(s.charAt(mark));
					//当前的为numF
					if(value > 0){
						if(value >=4){
							//万以上特殊处理
								
								last =  0;
								all += (int)(Math.pow(10, value) * (all - lastPow)) - (all - lastPow);
								lastPow = all;
							
						}else {
							if(last > 0){
								//前面是数字
								all -= last;
								last = (int)(last * Math.pow(10, value));
								all += last;
							}else {
								last = (int)(Math.pow(10, value));;
								all += last;
								
							}
						}
						
					}
				}
				
				mark++;
				
			}
			
		}
		return all;
	}
	
	public static int hasNum(String s) {
		
		if(s != null){
			
			Matcher matcher = Pattern.compile(numReg).matcher(s);
			if(matcher.find())
			{
				
				return matcher.start();
			}
			else {
				return -1;
			}
		}
		else {
			return -1;
		}
	}
	public static void main(String[] args) {
		
		
			

				System.out.println(format("十八亿三千万零九百六十四"));
				System.out.println(format("九十九万六千七百八十三"));
	
		
	}
}


分享到:
评论

相关推荐

    16位以内阿拉伯数字转中文大写VB源代码

    16位以内阿拉伯数字转中文大写VB源代码 自己写的代码,欢迎提意见,多多交流

    java阿拉伯数字转大写金额+大写金额转阿拉伯数字

    - 对每一段进行处理,将大写数字转为阿拉伯数字。 - 将各部分的数字相加得到总金额。 3. **实现方式**: - 创建一个映射,将大写金额转为数字。 - 使用正则表达式或循环遍历去除非数字字符。 - 分段处理,转换...

    中文数字转换阿拉伯数字

    在IT领域,中文数字转换阿拉伯数字是一个常见的编程需求,尤其在中国的文化背景下,有时需要将中文表述的数字转化为阿拉伯数字用于计算或数据处理。这个任务涉及到自然语言处理(NLP)和字符串处理技术,通常通过...

    阿拉伯数字转换为中文大写

    在这个过程中,我们需要使用数组来存储中文大写数字和单位,然后通过遍历阿拉伯数字字符串,逐个将数字转换为中文大写数字,并加上相应的单位。 在这个示例代码中,我们定义了两个数组:name数组和unit数组。name...

    阿拉伯数字转大写

    ### 阿拉伯数字转大写:一种实用的转换方法 #### 背景介绍 在财务、法律以及正式文档等场景下,通常需要将阿拉伯数字(即我们日常使用的0-9数字)转换为汉字大写形式。这种转换不仅能够增加文档的专业性,还能在...

    中文数字转成阿拉伯数字 java 实现

    这个场景下,我们有一个名为“中文数字转成阿拉伯数字 java 实现”的压缩包,包含了一个实现此功能的Java包和一个单元测试类。下面我们将深入探讨这个功能的实现及其相关知识点。 首先,我们要理解中文数字和阿拉伯...

    sql server阿拉伯数字转大写中文存储过程

    SQL Server 是一个功能强大且广泛应用的关系数据库管理系统,而阿拉伯数字转大写中文是一个常见的需求,例如,在财务报表、发票printing等应用场景中,需要将阿拉伯数字转换为大写中文以满足特定的格式要求。...

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

    本文档介绍了一个PB(PowerBuilder)函数,该函数用于将阿拉伯数字(小写数字)转换为中文大写数字。此功能在财务、银行以及其他需要精确且正式表示金额的场景中非常有用。该函数支持从个位数到千万亿级别的数字转换...

    阿拉伯数字金额转换为大写数字金额

    在IT行业中,尤其是在财务软件开发或者银行系统设计中,经常需要将阿拉伯数字金额转换成大写数字金额,以便于核对、防止错误和提高安全性。这是因为大写数字在视觉上与阿拉伯数字有所区别,可以降低欺诈风险。本例子...

    阿拉伯数字转大写汉字

    ### 阿拉伯数字转大写汉字 #### 概述 在中文环境中,将阿拉伯数字转换为大写汉字是一项非常实用的功能,尤其是在财务、银行系统等需要将金额以大写形式显示的场合。例如,当需要在支票或发票上填写金额时,通常会...

    阿拉伯数字转换成英文和大写

    这有助于提高财务报告的清晰度和规范性,特别是在处理金额时,大写数字可以防止篡改,增强安全性。这个项目描述了一个程序,能够处理Excel表格中的数据,将阿拉伯数字自动转换为英文和大写形式,并且保留小数点后两...

    阿拉伯数字转换成英文大写

    这个代码使用了 SpellNumber 函数来将阿拉伯数字转换成英文大写形式。SpellNumber 函数将数字字符串转换成英文大写形式,并返回结果。 SpellNumber 函数的实现主要基于以下几个步骤: 1. 首先,我们需要将数字...

    易语言数字转换汉字大写

    这段代码中,我们首先定义了一个整数变量`数字`并赋值为-123456789,然后定义了一个字符串数组`数字汉字`,存储0到9的汉字大写。接着,我们通过一系列的计算和字符串拼接,将数字转换为汉字大写,并在负数情况下添加...

    使用C#实现阿拉伯数字到大写中文的转换

    在编程领域,尤其是在开发财务软件或者处理金融数据时,经常需要将阿拉伯数字转换为大写中文数字,因为中文大写数字在正式的财务报表中是常见的格式。本篇将详细介绍如何使用C#语言来实现这一功能,以满足业务需求。...

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

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

    Android中数字转中文,金额转大写

    接下来是金额转大写,这个过程比数字转中文稍微复杂一点,因为大写金额通常有特定的规则,例如个、十、百、千等。同样可以使用Map存储这些规则,然后根据数字的位数进行相应的转换。以下是一个基本的金额转大写的...

    会计阿拉伯数字转换中文大写

    5. **组合结果**:最后,将所有位的中文大写数字按照正确的顺序组合起来,形成完整的中文金额表示。 6. **异常处理**:为了确保程序的健壮性,还需要处理可能的异常情况,如输入非数字字符、超出正常数值范围等。 ...

    阿拉伯数字转换成中文大写的算法(C#窗体程序)

    `zhwyxzs`方法通过遍历输入字符串`x`的每个字符,将其转换为对应的中文大写数字,并结合位置级别的名称(例如“拾”、“百”、“千”)来构建结果字符串。这里利用了一个字符串数组`stringArrayLevelNames`存储了...

    c和lua的中文和阿拉伯数字互转

    在本案例中,我们关注的是C语言和Lua语言之间中文数字(语音数字)与阿拉伯数字的互转。这两种语言各有其特点,C语言是一种底层、高效的语言,常用于系统编程和嵌入式开发;而Lua则是一种轻量级的脚本语言,常用于...

Global site tag (gtag.js) - Google Analytics