读数

来源:互联网 发布:苹果7蜂窝移动数据 编辑:程序博客网 时间:2024/04/27 18:32
package cn.test;
import java.util.Scanner;
public class ReadNumber {
private static String Read(String number){//分成四位一组,分别读数
String n = "";
int[] m = new int[4];
int T = Integer.parseInt(number);//去掉为零的首位  例如:0123--》123
if(T==0)
number = number + "零";
number = T + "";
if("零".equals(number.substring(0))==true)
n = n+"零";
for(int i = 0;i<number.length();i++)
{if(Integer.parseInt((number.substring(i,i+1)))!=0)
n= n + Tool(Integer.parseInt((number.substring(i,i+1))),2) + Tool((number.length()-i),1);
else
if(i!=number.length()-1)
n = n + "零";
}
return n;
}
private static String Tool(int i,int j) //定义读数工具
{String n ="";
String[] Tools = { "零","一","二","三","四","五","六","七","八","九","十","百","千","万","亿"};
if(j==1)
switch(i){case 13:;case 12:;case 11:;case 10:;case 9:n = Tools[14];break;
         case 8:;case 7:;case 6:;case 5:n = Tools[13];break;
         case 4: n = Tools[12];break;
         case 3: n = Tools[11];break;
         case 2: n = Tools[10];break;
}
if(j==2)
switch(i){case 0 :n = Tools[0];break;
         case 1 :n = Tools[1];break;
         case 2 :n = Tools[2];break;
         case 3 :n = Tools[3];break;
         case 4 :n = Tools[4];break;
         case 5 :n = Tools[5];break;
         case 6 :n = Tools[6];break;
         case 7 :n = Tools[7];break;
         case 8 :n = Tools[8];break;
         case 9 :n = Tools[9];break;
}
return n;
}
private static String fun_ReadNumber(String number){
String result = " ";
result = Tool(number.length(),1);
if(number.length()%4 == 0){
for(int k = 0;k<number.length();k+=4)
{
switch(k)
{
case 0:result = Read(number.substring(k,k+4)) + result;break;
case 4:result = result + Read(number.substring(k,k+4));break;
case 8:result = result + "万" +Read(number.substring(k,k+4));break;
}
}
}
else{
result = Read(number.substring(0,number.length()%4)) + result;
for(int k =number.length()%4 ;k<number.length();k+=4)
switch(k)
{
case 0:
case 1:
case 2:
case 3:result = result + Read(number.substring(k,k+4)) ;break;
case 4:
case 5:
case 6:
case 7:
case 8:result = result + "万" +Read(number.substring(k,k+4));break;
}
}
result = result.replaceAll("零零", "零");
result = result.replaceAll("零千", "千");
result = result.replaceAll("零百", "百");
result = result.replaceAll("零万", "万");
result = result.replaceAll("零亿", "亿");
result = result.replaceAll("千千", "千");
result = result.replaceAll("百百", "百");
result = result.replaceAll("十十", "十");
result = result.replaceAll("亿万", "亿零");
return result;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String number = sc.nextLine();

System.out.println(fun_ReadNumber(number));
}
}
 /**
  * 还存在bug。
  * 当末尾为零时,无法去除掉
  * 当中间四位为零时无法显示
  * 考虑不细,没找到修改方案
  * */
  
0 0