1 回答

TA贡献1851条经验 获得超5个赞
你这个不仅仅是正则的问题,还需要数字转中文。
private static String[] number_zh = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾"};
private static String[] unit_zh = new String[]{"","拾","佰","仟","万","亿"};
public static String shuzizhuanzhongwen(Long number){
//number_zh unit_zh
StringBuffer sb = new StringBuffer();
String str = number.toString();
Stack<String> _stack = new Stack<String>();
for(int i = 0;i < str.length();i++){
_stack.push(number_zh[(int) (number % 10)] );
(int) (number % 10) + getUnitZH(Long.valueOf(i))
number = number / 10;
}
while(!_stack.isEmpty()){
sb.append(_stack.pop());
}
return sb.toString();
}
private static String getUnitZH(Long num){
if(num >= 5 && num < 8){
return getUnitZH(num - 4);
}else if(num > 8){
return getUnitZH(num - 8);
}else if(num == 8){
return unit_zh[5];
}else if(num > 17){
return null;
}else{
return unit_zh[num.intValue()];
}
}
先截取chapter的字符串,然后将后面的数字截取,利用上面的方法转换,将转换完毕的字符串前面加"第",后面加"章"。
添加回答
举报