《疯狂java讲义》第4章思考
2016-05-09 21:57
274 查看
把一个4位数字字符串转换成一个中文读法,需要思考的点是
两个零连在一起时该如何处理呢?如果最高位是零如何处理呢?最低位是零又如何处理呢?
针对首尾为零的情况。用一个if语句解决。
针对两个连续零的情况用temp变量解决。
两个零连在一起时该如何处理呢?如果最高位是零如何处理呢?最低位是零又如何处理呢?
针对首尾为零的情况。用一个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")); } }测试通过
相关文章推荐
- Java学习(十二)
- Spring IOC容器【p名称空间注入属性值 】
- 【java】java.util.ArrayList类
- 《java入门第一季》之类String类小案例
- 《java入门第一季》之类String类小案例
- Java内部类引用外部类中的局部变量为何必须是final问题解析
- Spring AOP 创建切面
- [javaSE] 并发编程(线程间通信)
- java读取xml文件的方法汇总
- 对用java语言生成pdf文件的一些补充
- Java学习-常用排序稳定性分析
- Spring 事务
- 详解java定时任务
- javaoop-udp协议的解析
- Java学习-插入排序1-直接插入排序
- Spring mvc Day1(1) springmvc架构
- java移位运算符
- Eclipse和Qt中添加库
- java实现几种常见的排序算法
- spring的annotation-driven