package test;
##只能支持千位一下
import java.util.HashMap;
import java.util.Map;
public class NumberToChineseConverter {
private static Map<Integer,String> oneToten=new HashMap<Integer,String>();
static{
oneToten.put(0,"零");
oneToten.put(1,"一");
oneToten.put(2,"二");
oneToten.put(3,"三");
oneToten.put(4,"四");
oneToten.put(5,"五");
oneToten.put(6,"六");
oneToten.put(7,"七");
oneToten.put(8,"八");
oneToten.put(9,"九");
}
public static void main(String[] args) {
System.out.println(convertToChinese(4338));
}
private static String convertToChinese(int number){
int thousand=number/1000;
thousand=checkOverTen(thousand);
int hundred=number/100;
hundred=checkOverTen(hundred);
int ten=number/10;
ten=checkOverTen(ten);
int last=number%10;
if(last==0){
return oneToten.get(thousand)+"千"+oneToten.get(hundred)+"百"+oneToten.get(ten)+"十整";
}else{
return oneToten.get(thousand)+"千"+oneToten.get(hundred)+"百"+oneToten.get(ten)+"十"+oneToten.get(last)+"整";
}
}
private static int checkOverTen(int number){
if(number>10&&number%10!=0){
number=number%10;
}
return number;
}
}
package test;
import java.util.HashMap;
import java.util.Map;
### 支持到 int 最大值
public class NumberToChineseConverter {
private static Map<Character,String> oneTotenStr=new HashMap<Character,String>();
private static String[] chineseformat={"十","百","千","万","十万","百万","千万","亿","十亿"};
static{
oneTotenStr.put('0',"零");
oneTotenStr.put('1',"一");
oneTotenStr.put('2',"二");
oneTotenStr.put('3',"三");
oneTotenStr.put('4',"四");
oneTotenStr.put('5',"五");
oneTotenStr.put('6',"六");
oneTotenStr.put('7',"七");
oneTotenStr.put('8',"八");
oneTotenStr.put('9',"九");
}
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(convertToChinese2(Integer.MAX_VALUE));
}
private static String convertToChinese2(int number){
String num=String.valueOf(number);
return matchUp(num);
}
private static String matchUp(String number){
if(number.length()<13){
String s="";
for(int i=0;i<number.length()-1;i++){
char temp=number.charAt(i);
s+=oneTotenStr.get(temp)+chineseformat[number.length()-2-i];
}
char c=number.charAt(number.length()-1);
s+=oneTotenStr.get(c);
return s;
}
return "number is over length";
}
}
I'm falling off the sky all alone.The courage inside is gonna break the fall. Nothing can dim my light within.
I am That I am
程序 = 数据结构 + 算法