Javaデジタル文字列を中国語に変換

100842 ワード

 1   publicclass MainClass3 {
2   /**
3   * @param args
4   * @deprecated
5   * @deprecated :unit[(len - i - 1) % 8]
6   * @deprecated
7   * 1-0-1=0%8
8   * 2-0-1=1%8
9   * 3-0-1=2%8
10   * 4-0-1=3%8
11   * 5-0-1=4%8
12   * 6-0-1=5%8
13   * 7-0-1=6%8
14   * 8-0-1=7%8
15   * 9-0-1=9%8
16   */
17   publicstaticvoid main(String[] args) {
18   String temp0 ="987.65";// "009081";
19   String temp = temp0;
20   if (temp0.startsWith("0")) {
21   temp = String.valueOf(Integer.parseInt(temp0));
22   // System.out.println(Integer.parseInt(temp));
23   }
24   // int itemp = Integer.valueOf(temp);
25   // System.out.println("String --> Integer"+itemp);
26   StringBuffer retStrBuf =new StringBuffer();//
27   int dot =0; //
28   int ivalue =0;//
29   int len =0;//
30   for (int i =0; i < temp.length(); i++) {
31   System.out.print(temp.substring(i, i +1) +"");
32   }
33   System.out.println();
34   String num[] = { " ", " ", " ", " ", " ", " ", " ", " ", " ", " " };
35   String unit[] = { " ", " ", " ", " ", " ", " ", " ", " " };
36   len = temp.length();
37   if (temp ==null||"".equals(temp) || temp.length() <=0) {
38   System.out.println("Input is null");
39   } else {
40   //(==-1)
41   dot = temp.indexOf(".");
42   if(dot ==-1){
43   int i =0;
44   // len-1 ,i 0
45   for (i =0; i < len -1; i++) {
46   ivalue = Integer.parseInt(temp.substring(i, i +1));
47   retStrBuf.append(num[ivalue] + (unit[(len - i -1) %8]));
48   // System.out.print(num[ivalue]+(unit[(len - i - 1) % 8]));
49   }
50   //
51   ivalue = Integer.parseInt(String.valueOf(temp.substring(i, i +1)));
52   // ,
53   if (ivalue !=0) {
54   retStrBuf.append(num[ivalue]);
55   }
56   retStrBuf.append(" ");
57   System.out.println(retStrBuf.toString());
58   // System.out.println(","+num[ivalue]);
59   }else{
60   String tmpStr1 = temp.substring(0, dot);
61   len = tmpStr1.length();
62   int i =0;
63   // len-1 ,i 0
64   for (i =0; i < len -1; i++) {
65   ivalue = Integer.parseInt(temp.substring(i, i +1));
66   retStrBuf.append(num[ivalue] + (unit[(len - i -1) %8]));
67   // System.out.print(num[ivalue]+(unit[(len - i - 1) % 8]));
68   }
69   //
70   ivalue = Integer.parseInt(String.valueOf(temp.substring(i, i +1)));
71   // ,
72   if (ivalue !=0) {
73   retStrBuf.append(num[ivalue]);
74   }
75   //
76   if (dot < temp.length() -1) {
77   retStrBuf.append(" ");
78   //
79   String tmpStr2 = temp.substring(dot +1);
80   len = tmpStr2.length();
81   // len-1
82   for (i =0; i < len; i++) {
83   ivalue = Integer.parseInt(tmpStr2.substring(i, i +1));
84   retStrBuf.append(num[ivalue]);
85   }
86   }
87   retStrBuf.append(" ");
88   System.out.println(retStrBuf.toString());
89   }
90   }
91   }
92   }

 
 1 publicclass TestChinToNum {
2
3 publicstaticvoid main(String args[])
4 {
5
6 System.out.println(convertChinese());
7
8 }
9 /**
10 *&nbsp; <br>
11 * <code> :XXX :0.1 2005-10-17 </code> <br>
12 * : <br>
13 *&nbsp;&nbsp;&nbsp;&nbsp; 、 ,
14 * 、 。<br>
15 * 、 , 。 , , 、
16 * , 、 、 、 、 , 。<br>
17 *&nbsp;&nbsp;&nbsp;&nbsp; 、 , <br>
18 * ( )、 ( )、 、 ( )、 ( )、 ( )、 、 、 、 、 、 、 ( )、 、 、 、 、 、 ( ) 。<br>
19 * 、 ( )、 、 、 、 、 、 、 、 、 、 、 ( 0) , 。<br>
20 * , 、 、 、 、 , 。<br>
21 *&nbsp;&nbsp;&nbsp;&nbsp; 、 “ ” , “ ” , “ ”( “ ”) , “ ” “
22 * ”( “ ”) 。<br>
23 * “ ” ,“ ” “ ”( “ ”) 。<br>
24 *&nbsp;&nbsp;&nbsp;&nbsp; 、 “ ” , “ ” , 。<br>
25 * “ ” , “ ” 。<br>
26 * “ 、 、 、 、 、 、 、 、 、 ” 。<br>
27 *&nbsp;&nbsp;&nbsp;&nbsp; 、 “0” ,<br>
28 * 、 。<br>
29 * :<br>
30 *&nbsp;&nbsp;&nbsp;&nbsp;( ) “O” , “ ” 。 ¥1,409.50,
31 * 。<br>
32 *&nbsp;&nbsp;&nbsp;&nbsp;( ) “0” , “ ” 。 ¥6,007.14
33 * , 。<br>
34 *&nbsp;&nbsp;&nbsp;&nbsp;( ) “0”, “0”, 、 “0’,
35 * 、 “0” ,<br>
36 * , “ ” 。 ¥1,680.32, ,<br>
37 * ; ¥107,000.53, , 。<br>
38 *&nbsp;&nbsp;&nbsp;&nbsp;( ) “0”, “0” , “ ” “ ” 。 ¥16
39 * ,409.02,<br>
40 * ; ¥325.04, 。<br>
41 *&nbsp;&nbsp;&nbsp;&nbsp; 、 , “¥”( :)。<br>
42 * , 。<br>
43 *&nbsp;&nbsp;&nbsp;&nbsp; 、 。<br>
44 * , 、 , 、 , 、 , “ ”;<br>
45 * , “ ”。 1 15 , 。 10 20 , 。<br>
46 *&nbsp;&nbsp;&nbsp;&nbsp; 、 , 。 , ,
47 * , 。<br>
48 * @param money
49 * @return
50 */
51 publicstatic String convertChinese() {
52 char[] s1 = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '};
53 char[] s4 = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '};
54 //String str = String.valueOf(Math.round(money * YUAN_TO_FEN_RATIO + FIX_FLOAT_ERR_NUMBER));
55 String str=String.valueOf("30051.25");
56 String result ="";
57
58 for (int i =0; i < str.length(); i++) {
59 int n = str.charAt(str.length() -1- i) -'0';
60 result = s1[n] +""+ s4[i] + result;
61 }
62
63 result = result.replaceAll(" ", " ");
64 result = result.replaceAll(" ", " ");
65 result = result.replaceAll(" ", " ");
66 result = result.replaceAll(" ", " ");
67 result = result.replaceAll(" ", " ");
68 result = result.replaceAll(" ", " ");
69 result = result.replaceAll(" ", " ");
70 result = result.replaceAll(" ", " ");
71
72 result = result.replaceAll(" ", " ");
73 result = result.replaceAll(" ", " ");
74 result = result.replaceAll(" ", " ");
75 result = result.replaceAll(" ", " ");
76 result = result.replaceAll(" ", " ");
77 result = result.replaceAll(" ", " ");
78 result = result.replaceAll(" ", " ");
79
80 result = result.replaceAll(" $", "");
81 result = result.replaceAll(" $", " ");
82 return result;
83 }
84
85 }

 
 1 publicstatic String transMoney(double money) throws Exception {
2 StringBuffer rsult =new StringBuffer();
3 String unit=" ";
4 String number=" ";
5 String moneyStr = String.format("%.2f", money).replace(".","");
6 System.out.println(moneyStr);
7 int pos = unit.length() - moneyStr.length();
8 boolean zero =false;
9 for(int i=0;i<moneyStr.length();i++){
10 if (moneyStr.charAt(i) =='0'){
11 zero =true;
12 if(((pos+i+1)%4) ==0){
13 rsult.append(unit.charAt(pos+i));
14 zero =false;
15 }
16 }else{
17 if (zero){
18 rsult.append(number.charAt(0));
19 }
20 zero =false;
21 rsult.append(number.charAt(moneyStr.charAt(i)-'0')).append(unit.charAt(pos+i));
22 }
23 }
24 if (moneyStr.endsWith("00")){
25 rsult.append(' ');
26 }elseif(zero){
27 rsult.append(" ");
28 }
29 return rsult.toString();
30 }

 
  1 publicclass Trans2RMB {
2
3 /**
4 *
5 * @param args
6 */
7 publicstaticvoid main(String[] args) {
8 System.out.println("
-------- ------------
");
9 Trans2RMB t2r =new Trans2RMB();
10 String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));
11 //
12 if(!"".equals(s)) {
13 System.out.println(""+ s);;
14 }
15 System.out.println("
---------------------------------------------
");
16 }
17
18 /**
19 * , checkNum()
20 * ,
21 * @return
22 */
23 private String getNum() {
24 String s =null;
25 System.out.println(" ( ):");
26 //
27 java.util.Scanner scanner =new java.util.Scanner(System.in);
28 s = scanner.next();
29 // Scanner
30 scanner.close();
31 //
32 // , ; "0"
33 if(this.checkNum(s)) {
34 return s;
35 } else {
36 return"";
37 }
38 }
39
40 /**
41 * , ,
42 * @param s String
43 * @return , true, false
44 */
45 privateboolean checkNum(String s) {
46 // , , false
47 try {
48 float f = Float.valueOf(s);
49 // , false
50 if(f <0) {
51 System.out.println(" , !");
52 returnfalse;
53 }else {
54 returntrue;
55 }
56 } catch (NumberFormatException e) {
57 System.out.println(" , !");
58 returnfalse;
59 }
60 }
61
62 /**
63 * , numFormat()
64 *
65 * : roundString()
66 * @param s String
67 * @return
68 */
69 private String splitNum(String s) {
70 //
71 if("".equals(s)) {
72 return"";
73 }
74 //
75 int index = s.indexOf(".");
76 //
77 String intOnly = s.substring(0, index);
78 String part1 =this.numFormat(1, intOnly);
79 //
80 String smallOnly = s.substring(index +1);
81 String part2 =this.numFormat(2, smallOnly);
82 //
83 String newS = part1 + part2;
84 return newS;
85 }
86
87 /**
88 *
89 * @param s String
90 * @return
91 */
92 private String roundString(String s) {
93 //
94 if("".equals(s)) {
95 return"";
96 }
97 // double ,
98 double d = Double.parseDouble(s);
99 //
100 d = (d *100+0.5) /100;
101 // d
102 s =new java.text.DecimalFormat("##0.000").format(d);
103 //
104 int index = s.indexOf(".");
105 //
106 String intOnly = s.substring(0, index);
107 // , "0"
108 if(intOnly.length() >13) {
109 System.out.println(" !( 13 !)");
110 return"";
111 }
112 //
113 String smallOnly = s.substring(index +1);
114 //
115 if(smallOnly.length() >2) {
116 String roundSmall = smallOnly.substring(0, 2);
117 //
118 s = intOnly +"."+ roundSmall;
119 }
120 return s;
121 }
122
123 /**
124 *
125 * @param flag int ,1 ,0
126 * @param s String
127 * @return
128 */
129 private String numFormat(int flag, String s) {
130 int sLength = s.length();
131 //
132 String bigLetter[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", " "};
133 //
134 String unit[] = {" ", " ", " ", " ", " ",
135 //
136 " ", " ", " ",
137 //
138 " ", " ", " ", " ", " "};
139 String small[] = {" ", " "};
140 //
141 String newS ="";
142 //
143 for(int i =0; i < sLength; i ++) {
144 if(flag ==1) {
145 // ( )
146 newS = newS + bigLetter[s.charAt(i) -48] + unit[sLength - i -1];
147 } elseif(flag ==2) {
148 // ( )
149 newS = newS + bigLetter[s.charAt(i) -48] + small[sLength - i -1];
150 }
151 }
152 return newS;
153 }
154
155 /**
156 * ,
157 * ,
158 * : splitNum() ,
159 *
160 * @param s String
161 * @return
162 */
163 private String cleanZero(String s) {
164 //
165 if("".equals(s)) {
166 return"";
167 }
168 // 0 ' ',
169 while(s.charAt(0) ==' ') {
170 // " "
171 s = s.substring(2);
172 // 0, " "
173 if(s.length() ==0) {
174 return" ";
175 }
176 }
177 // ' ' ' ',
178 /* , 4 , ... */
179 String regex1[] = {" ", " ", " "};
180 String regex2[] = {" ", " ", " "};
181 String regex3[] = {" ", " ", " "};
182 String regex4[] = {" ", " "};
183 // " ", "," " " "
184 for(int i =0; i <3; i ++) {
185 s = s.replaceAll(regex1[i], " ");
186 }
187 // " "," "," "
188 // " "," "," " ,
189 for(int i =0; i <3; i ++) {
190 //
191 //
192 s = s.replaceAll(" ", " ");
193 s = s.replaceAll(" ", " ");
194 s = s.replaceAll(regex2[i], regex3[i]);
195 }
196 // " "," "
197 for(int i =0; i <2; i ++) {
198 s = s.replaceAll(regex4[i], "");
199 }
200 // " " " " " " , " " , " "
201 s = s.replaceAll(" ", " ");
202 return s;
203 }
204 }