**公司的面试题,非得写出代码,发到博客分享一下吧,有问题希望大家多指正,互相学习,小弟是小虾米!
-
package com.pyc.maven.demo.jerry;
-
-
import java.util.Arrays;
-
import java.util.HashMap;
-
import java.util.Map;
-
-
-
-
-
-
-
public class Analysis {
-
-
private final static Map unitMap = new HashMap();
-
-
private final static Map amountMap = new HashMap();
-
-
static{
-
unitMap.put('亿', 100000000);
-
unitMap.put('万', 10000);
-
unitMap.put('千', 1000);
-
unitMap.put('佰', 100);
-
unitMap.put('拾', 10);
-
unitMap.put('圆', 1);
-
-
amountMap.put('玖', 9);
-
amountMap.put('捌', 8);
-
amountMap.put('柒', 7);
-
amountMap.put('陆', 6);
-
amountMap.put('伍', 5);
-
amountMap.put('肆', 4);
-
amountMap.put('叁', 3);
-
amountMap.put('贰', 2);
-
amountMap.put('壹', 1);
-
}
-
-
public static void main(String[] args) {
-
-
long start = System.currentTimeMillis();
-
-
-
System.out.println(analysis("壹佰贰拾叁万"));
-
-
System.out.println(analysis("玖拾玖"));
-
-
System.out.println(analysis("壹万零叁佰"));
-
-
System.out.println(analysis("壹万零叁"));
-
-
System.out.println(analysis("叁千万"));
-
-
-
long end = System.currentTimeMillis();
-
-
System.err.println(end - start);
-
}
-
-
-
-
-
-
-
public static int analysis(String target){
-
-
if(null == target || "".equals(target))
-
return 0;
-
-
if(!amountMap.containsKey(target.charAt(0))){
-
target = "壹"+target;
-
}
-
if(!unitMap.containsKey(target.charAt(target.length()-1))){
-
target = target+"圆";
-
}
-
-
char[] cc = target.toCharArray();
-
-
-
System.out.println(Arrays.toString(cc));
-
System.out.println("************************************");
-
-
-
-
-
int temp = 0;
-
-
-
-
-
int preUnitValue = 0;
-
-
-
-
-
int result = 0;
-
-
for(char c : cc){
-
-
-
-
-
if(isAmount(c)){
-
temp = amountMap.get(c);
-
}
-
-
-
-
-
else if(isUnit(c)){
-
int unitValue = unitMap.get(c);
-
-
-
-
-
if(preUnitValue !=0 && unitValue >= preUnitValue){
-
result = (result+temp) * unitValue;
-
}else{
-
result = result + temp*unitValue;
-
}
-
preUnitValue = unitValue;
-
temp = 0;
-
}
-
}
-
-
return result;
-
}
-
-
-
-
-
-
-
private static boolean isAmount(char c){
-
return amountMap.containsKey(c);
-
}
-
-
-
-
-
-
-
private static boolean isUnit(char c){
-
return unitMap.containsKey(c);
-
}
-
}
阅读(3134) | 评论(0) | 转发(0) |