您的位置:首页 > 编程语言 > Java开发

《疯狂java讲义》第4章思考

2016-05-09 21:57 274 查看
把一个4位数字字符串转换成一个中文读法,需要思考的点是

两个零连在一起时该如何处理呢?如果最高位是零如何处理呢?最低位是零又如何处理呢?

针对首尾为零的情况。用一个if语句解决。
针对两个连续零的情况用temp变量解决。

import java.util.Arrays;
public class Num2Rmb
{
private String[] hanArr = {"零" , "壹" , "贰" , "叁" , "肆" ,
"伍" , "陆" , "柒" , "捌" , "玖"};
private String[] unitArr = {"十" , "百" , "千"};
private String[] divide(double num){
long zheng=(long) num;
long xiao=Math.round((num-zheng)*100);
return new String[]{zheng+"",String.valueOf(xiao)};
}
private String toHanStr(String numStr){
String result="";
int numLen=numStr.length();
int temp=0;
for(int i=0;i<numLen;i++){
int num=numStr.charAt(i)-48;
if(i==0&&num==0||i==3&&num==0){
continue;
}
if(num==0){
temp++;
}
if(temp==2){
temp=0;
continue;
}
if(i!=numLen-1&&num!=0){
result+=hanArr[num]+unitArr[numLen-2-i];
}
else{
result+=hanArr[num];
}
}
return result;
}
public static void main(String[] args){
Num2Rmb nr=new Num2Rmb();
System.out.println(Arrays.toString(nr.divide(12.34)));
System.out.println(nr.toHanStr("1230"));
}
}
测试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: