汉字数字转数字

  为了便于以后重用,香港服务器,服务器空间,现把代码贴出来

1 import java.math.BigInteger; 2 import java.util.HashMap; 3 import java.util.Map; 4 import java.util.regex.Matcher; 5 import java.util.regex.Pattern; * 模块: 描述:将汉字数字转换为数字 9 * 李乐 601235723@qq.com ChineseNumber {13private ChineseNumber() {14 }Pattern CHN_NUM_PATTERN = Pattern.compile(“[一二三四五六七八九][十百千]?”);Map<Character, Integer> CHN_UNITS = new HashMap<Character, Integer>();Map<Character, Integer> CHN_NUMS = new HashMap<Character, Integer>();19static {20CHN_UNITS.put(‘十’, 10);21CHN_UNITS.put(‘百’, 100);22CHN_UNITS.put(‘千’, 1000);23CHN_UNITS.put(‘万’, 10000);24CHN_UNITS.put(‘亿’, 10000000);25CHN_NUMS.put(‘一’, 1);26CHN_NUMS.put(‘二’, 2);27CHN_NUMS.put(‘三’, 3);28CHN_NUMS.put(‘四’, 4);29CHN_NUMS.put(‘五’, 5);30CHN_NUMS.put(‘六’, 6);31CHN_NUMS.put(‘七’, 7);32CHN_NUMS.put(‘八’, 8);33CHN_NUMS.put(‘九’, 9);34 }* 将小于一万的汉字数字,转换为BigInteger38 * chnNum BigInteger getNumber(String chnNum) {43BigInteger number = BigInteger.valueOf(0);44Matcher m = CHN_NUM_PATTERN.matcher(chnNum);45 m.reset(chnNum);46while (m.find()) {47String subNumber = m.group();48if (subNumber.length() == 1) {49number = number.add(BigInteger.valueOf(CHN_NUMS.get(subNumber.charAt(0))));50} else if (subNumber.length() == 2) {51number = number.add(BigInteger.valueOf(CHN_NUMS.get(subNumber.charAt(0))).multiply(BigInteger.valueOf(CHN_UNITS.get(subNumber.charAt(1)))));52 }53 }54return number;55 }* 将汉字转换为数字59 * num parseNumber(String chnNum) {64chnNum = chnNum.replaceAll(“(?<![一二三四五六七八九])十”, “一十”).replaceAll(“零”, “”);65Pattern pattern = Pattern.compile(“[万亿]”);66Matcher m = pattern.matcher(chnNum);67BigInteger result = BigInteger.valueOf(0);68int index = 0;69while (m.find()) {70int end = m.end();71int multiple = CHN_UNITS.get(m.group().charAt(0));72String num = chnNum.substring(index, m.start());73result = result.add(getNumber(num)).multiply(BigInteger.valueOf(multiple));74index = end;75 }76String num = chnNum.substring(index);77result = result.add(getNumber(num));78return result.intValue();79 }80 }

,服务器空间一个有信念者所开发出的力量,大于99个只有兴趣者。

汉字数字转数字

相关文章:

你感兴趣的文章:

标签云: