`

java汉字数字转换成阿拉伯数字

    博客分类:
  • java
阅读更多
  今天做一个日期转换的时候发现有些时间是用大写汉字写成的,需要转换成相应的数字值才能使用SimpleDateFormat进行格式刷。
  问题描述:在月份和日的时候有十几、二十几、这样的数组出现如果直接转成相应的数组就会转成10X或者20X。
  解决方法:写一个汉字对应数字的Map,当年份的时候直接在Map中取出对应数字即可,在月份和日的时候就单独写个方法解决。
  方法思路:<伪码>
  Map<String,String>chineseMap=new HashMap<String,String>();
  chineseMap.put("一","1");
  chineseMap.put("二","2");
  chineseMap.put("三","3");
         。
         。
  int sumNum=0;
  int unitValue=0;//用于保存单位前的数字
  for(int i=0;i<月份.length;i++){
    int temp=chineseMap.get(月份.charAt(i)).toInt();
    switch(temp){
    case 10:
         if(unitValue==0){
          unitValue=1;//如果是十一月之类的,进来开始就是一个10
        }
        sumNum=+unitValue*temp;
        unitValue=0;
   case 100:
        .
        .
        break;
    default
      unitValue+=temp;
       break;
   }
  }
  sumNum+=unitValue;
  return sumNum;
代码:
 private static final Map<String, String> chineseMap = new HashMap<String, String>();
	private static final String yearReg="[一|二|三|四|五|六|七|八|九|十|〇|○]{4}年";
	private static final String monthReg="(([十][一|二])|([一|二|三|四|五|六|七|八|九|十]))月";
	private static final String dayReg="(([十][一|二|三|四|五|六|七|八|九])|(一|二|三|四|五|六|七|八|九|十)|([一|二|三][十][一|二|三|四|五|六|七|八|九]))日";
	static{
		chineseMap.put("一", "1");
		chineseMap.put("元", "1");
		chineseMap.put("二", "2");
		chineseMap.put("三", "3");
		chineseMap.put("四", "4");
		chineseMap.put("五", "5");
		chineseMap.put("六", "6");
		chineseMap.put("七", "7");
		chineseMap.put("八", "8");
		chineseMap.put("九", "9");
		chineseMap.put("〇", "0");
		chineseMap.put("○", "0");
		chineseMap.put("十", "10");
		chineseMap.put("百", "100");
	}
  protected String regMethod(Pattern pattern, String value) {
		Matcher ma = pattern.matcher(value);
		if (ma.find()) {
			return ma.group();
		}
		return null;
	}

 	private int judgeChineseData(String value){
		int sumNum=0;
		int unitValue=0;
		for(int i=0;i<value.length()-1;i++){
			char te=value.charAt(i);
			int temp=Integer.parseInt(chineseMap.get(String.valueOf(te)));
			switch (temp) {
			case 100:
				  if(unitValue==0){
					  unitValue=1;
				  }
				  sumNum+=unitValue*temp;
				  unitValue=0;
				break;
			case 10:
				 if(unitValue==0){
					  unitValue=1;
				  }
				  sumNum+=unitValue*temp;
				  unitValue=0;
				break;
			default:
				unitValue+=temp;
				break;
			}
		}
		sumNum+= unitValue;
		return sumNum;
	}
2
0
分享到:
评论

相关推荐

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

    在Java编程语言中,将中文数字转换为阿拉伯数字是一个常见的需求,特别是在处理中文文本数据时。这个场景下,我们有一个名为“中文数字转成阿拉伯数字 java 实现”的压缩包,包含了一个实现此功能的Java包和一个单元...

    java实现阿拉伯数字 转换为 汉字数字 算法

    java实现阿拉伯数字 转换为 汉字数字 算法

    java阿拉伯数字转换成中文传统读法

    在编程领域,尤其是在Java开发中,有时我们需要将阿拉伯数字(1, 2, 3等)转换为中文的传统读法(如“一”,“二”,“三”)。这个任务涉及到字符串处理、数字转换以及对中文字符的理解。在本文中,我们将深入探讨...

    java将数字转换成大写字母

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

    java 阿拉伯数字转化中文大写

    根据提供的文件信息,可以看出这是一个Java程序,用于将阿拉伯数字转换为中文大写形式,并且能够处理包含小数点的情况。接下来我们将对这个程序的关键部分进行详细的解析与解释。 ### 核心知识点概述 1. **数据...

    java 阿拉伯数字转换成人民币的工具类

    java编写的 阿拉伯数字转换成相应的人民币汉字类

    java阿拉伯数字转中文数字

    java阿拉伯数字转中文数字的重要性在于,它可以应用于各种需要将数字转换为中文的场景,例如在生成中文发票、中文报告、中文协议等文档时,需要将阿拉伯数字转换为中文数字。 java阿拉伯数字转中文数字的实现方法有...

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

    在Android开发过程中,有时我们需要将阿拉伯数字(1, 2, 3...)转换成中文小写数字(一,二,三...),特别是在涉及到文化习惯或者用户界面本地化的时候,如书籍页码显示。这个任务涉及到字符串处理和字符映射,下面...

    java金额转换,阿拉伯数字转换成中国传统形式。

    在Java编程中,将阿拉伯数字转换为中国传统形式的金额表示是一项常见的需求,特别是在财务系统或者银行应用中。这种转换能够使数字更符合中国人的阅读习惯,增加可读性。在这个问题中,我们要处理的是将像...

    java阿拉伯数字转化为大写

    java程序代码,阿拉伯数字转化为大写

    java写的将阿拉伯数字转化为中文金额的大写方式

    在Java编程中,将阿拉伯数字转化为中文金额大写是一项常见的任务,特别是在财务系统或报表生成中。这个题目要求实现一个程序,能够读取输入的阿拉伯数字字符串,然后将其转换为符合中国会计规范的中文大写金额表示。...

    java实现阿拉伯数字转汉字数字

    在开发过程中,经常需要将阿拉伯数字转换为汉字数字,以便于更好地与中文环境集成。在本文中,我们将详细介绍Java实现阿拉伯数字转换为汉字数字的源代码,供大家参考。 首先,需要了解阿拉伯数字和汉字数字的基本...

    Java将阿拉伯数字转化成汉字金钱

    将阿拉伯数字转化成汉字金钱 如1234.45转化为壹仟贰佰叁拾肆元肆角伍分

    java写的把数字转化成英语的工具

    有些变态的报表需要把数字转换成英文输出,但愿这个能帮得到你 one hundred eighty-eight thousand, eight hundred one hundred eighty-eight thousand, eight hundred one one hundred eighty-eight thousand, ...

    中文数字转换阿拉伯数字.rar

    在许多应用程序中,为了方便计算或标准化数据,我们需要将中文数字转换成阿拉伯数字。下面将详细介绍这一转换过程以及相关的技术知识。 1. **基础概念**: - **中文数字**:以汉字表示的数字,如“一”代表1,“二...

    java 中文转数字

    下面是一个简单的Java代码示例,演示了如何将中文数字字符串转换成阿拉伯数字: ```java public class ChineseToNumber { private static final String[] CHINESE_DIGITS = {"零", "一", "二", "三", "四", "五", ...

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

    Java 实现数字转换人民币中文大写工具 Java 实现数字转换人民币中文大写工具是指使用 Java 语言将数字转换为人民币中文大写格式的工具。该工具具有很高的实用价值,特别是在人事业务系统开发中,经常需要将数字转换...

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

    8. 编程实践:我们通过实践了解了如何使用Java语言将阿拉伯数字转换为中文大写数字,并掌握了编程的基本技术和方法。 通过这个示例代码,我们掌握了阿拉伯数字转换为中文大写的技术和方法,并了解了编程语言基础和...

    用户输入阿拉伯数字,输出相应汉字

    Java 中使用堆栈实现阿拉伯数字到汉字的转换 在 Java 中,我们可以使用堆栈实现用户输入的阿拉伯数字到汉字的转换。这种方法可以利用 Java.util 包中的堆栈 Stack 来实现。 首先,我们需要了解阿拉伯数字到汉字的...

    一种阿拉伯数字(含小数部分)转中文汉字的java算法

    一种阿拉伯数字(含小数部分)转中文汉字的算法,例如通过键盘输入 123011221.1201,则输出 一亿二千三百零一万一千二百二十一点一二零一(或 壹亿贰仟叁佰零壹万壹仟贰佰贰拾壹点壹贰零壹)。

Global site tag (gtag.js) - Google Analytics