疯狂Java讲义第四章练习
package com.demo; /** * 把一个浮点数分解为整数部分和小数部分 * @param integer 整数部分 * @param decimal 小数部分 * @param divide()分解的方法 */ public class DivideNum { private int integer; private int decimal; public int[] divide(double num){ //直接强制转换可以直接得到整数部分 integer=(int)num; //用原来的数减去整数部分可得小数部分 //Math.round()是四舍五入,数据类型为long decimal=(int)Math.round((num-integer)*100); System.out.println("运行成功"); return new int[]{integer,decimal}; } }
package com.demo; /** * @param str[]是汉字字符串 * @param munit[]是单位字符串 * @param transform()是转换方法 */ public class Numtostring { private String[] str = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; private String[] munit = {"十","百","千"}; public String transform(int a){ String result=""; //通过String.valueOf(a).length()获得长度 int len =String.valueOf(a).length(); //将a转换为字符型,因为用整形不方便顺序读出数字的各个单位的数字 String strnum=a+""; System.out.println(strnum); for(int i=0;i<len;i++){ //charAt()方法返回指定索引位置的char值,因为char型数字和int型数字的ASCII码刚好差48 int num = strnum.charAt(i)-48; System.out.println(num); //不为最后一位且不为零则加单位 if(num!=0&&i!=len-1){ result+=str[num]+munit[len-2-i]; System.out.println(result); } //否则不加单位 else{ result+=str[num]; } } System.out.println("运行成功!"); return result; } }
package com.demo; import java.util.Scanner; /** * 测试 */ import java.util.Arrays; public class Text { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入一个四位数"); Scanner sc = new Scanner(System.in); double imput=sc.nextDouble(); sc.close(); DivideNum fct1= new DivideNum(); Numtostring fct2 = new Numtostring(); int[] dividenum; dividenum=fct1.divide(imput); String result=fct2.transform(dividenum[0]); System.out.println("分离后的数字为:"); System.out.println(Arrays.toString(dividenum)); System.out.println("转换后的数字为:"); System.out.println(result); } }