阿拉伯数字转中文大写

服务器端调用  
StringFunction.numberToChinese(double)方法即可  


import  java.io.PrintStream;  
import  java.sql.Time;  
import  java.text.DecimalFormat;  
import  java.text.NumberFormat;  
import  java.util.Calendar;  
import  java.util.Date;  
import  java.util.StringTokenizer;  
import  javax.servlet.ServletRequest;  



public  class  StringFunction  
{  

public  StringFunction()  
{  
}  

public  static  String  getFileName(String  s)  
{  
s  =  DataConvert.toRealString(2,s);  
int  i  =  0;  
boolean  flag  =  false;  
boolean  flag1  =  false;  
boolean  flag2  =  false;  
i  =  s.lastIndexOf(´/´);  

if(i  !=  -1)  
return  s.substring(i  +  1,  s.length());  
i  =  s.lastIndexOf(´//´);  
if(i  !=  -1)  
return  s.substring(i  +  1,  s.length());  
else  
return  s;  
}  

public  static  String  replace(String  s,  String  s1,  String  s2)  
{  
for(int  i  =  s.indexOf(s1,  0);  i  !=  -1;  i  =  s.indexOf(s1,  i  +  s2.length()))  
s  =  s.substring(0,  i)  +  s2  +  s.substring(i  +  s1.length());  

return  s;  
}  

public  static  String  applyArgs(String  s,  String  s1,  String  s2)  
{  
StringTokenizer  stringtokenizer  =  new  StringTokenizer(s1.trim(),  ",  ");  
for(StringTokenizer  stringtokenizer1  =  new  StringTokenizer(s2.trim(),  ",");  stringtokenizer.hasMoreTokens()  &&  stringtokenizer1.hasMoreTokens();)  
{  
String  s5  =  stringtokenizer.nextToken().trim();  
String  s4  =  stringtokenizer.nextToken().trim();  
String  s3  =  stringtokenizer1.nextToken().trim();  
if(!s5.equals("String"))  
if(s5.equals("Number"))  
{  
if(s3.substring(0,  1).equals("´")  ||  s3.substring(0,  1).equals(String.valueOf(´"´)))  
s3  =  s3.substring(1,  s3.length()  -  1);  
}  else  
if(!s5.equals("Date"));  
s  =  replace(s,  "#"  +  s4,  s3);  
}  

return  s;  
}  

public  static  String  getNow()  
{  
Calendar  calendar  =  Calendar.getInstance();  
return  String.valueOf(Time.valueOf(String.valueOf(calendar.get(11))  +  ":"  +  String.valueOf(calendar.get(12))  +  ":"  +  String.valueOf(calendar.get(13))));  
}  

public  static  int  indexOf(String  s,  String  s1,  String  s2,  String  s3,  int  i)  
{  
int  j;  
for(j  =  s.indexOf(s1,  i);  j  >=  0  &&  getOccurTimes(s,  s2,  s3,  i,  j)  !=  0;  j  =  s.indexOf(s1,  j  +  s1.length()));  
return  j;  
}  

public  static  int  indexOf(String  s,  String  s1,  int  i,  int  j)  
{  
return  s.substring(i,  j).indexOf(s1);  
}  

public  static  int  getOccurTimes(String  s,  String  s1,  String  s2,  int  i,  int  j)  
{  
s  =  s.substring(i,  j);  
if(s1.equals(s2))  
return  getOccurTimes(s,  s1)  %  2;  
else  
return  getOccurTimes(s,  s1)  -  getOccurTimes(s,  s2);  
}  

public  static  int  getOccurTimes(String  s,  String  s1)  
{  
int  i  =  0;  
int  j;  
for(j  =  0;  (i  =  s.indexOf(s1,  i)  +  1)  >  0;  j++);  
return  j;  
}  

public  static  int  getOccurTimesIgnoreCase(String  s,  String  s1)  
{  
int  i  =  0;  
int  j;  
for(j  =  0;  (i  =  s.toLowerCase().indexOf(s1.toLowerCase(),  i)  +  1)  >  0;  j++);  
return  j;  
}  

public  static  String  getSeparate(String  s,  String  s1,  int  i)  
{  
int  k  =  0;  
int  l  =  0;  
s  =  s  +  s1;  
int  j;  
while((j  =  s.indexOf(s1,  k))  >=  0)  
{  
if(++l  ==  i)  
return  s.substring(k,  j);  
k  =  j  +  1;  
}  
return  "";  
}  

public  static  int  getSeparateSum(String  s,  String  s1)  
{  
int  i  =  0;  
int  j;  
for(j  =  0;  (i  =  s.indexOf(s1,  i)  +  1)  >  0;  j++);  
return  j  +  1;  
}  

public  static  String[]  toStringArray(String  s,  String  s1)  
{  
String  as[]  =  null;  
int  i  =  getSeparateSum(s,  s1);  
if(i  >  0)  
{  
as  =  new  String[i];  
for(int  j  =  1;  j  <=  i;  j++)  
as[j  -  1]  =  getSeparate(s,  s1,  j);  

}  
return  as;  
}  

public  static  String  toArrayString(String  as[],  String  s)  
{  
String  s1  =  "";  
int  i  =  as.length;  
for(int  j  =  1;  j  <=  i;  j++)  
s1  =  s1  +  s  +  as[j  -  1];  

if(s1.length()  >  0)  
s1  =  s1.substring(s.length());  
return  s1;  
}  

public  static  String[]  doubleArray(String  as[])  
{  
String  as1[]  =  null;  
int  i  =  as.length;  
as1  =  new  String[2  *  i];  
if(i  >  0)  
{  
for(int  j  =  0;  j  <  i;  j++)  
{  
as1[2  *  j]  =  as[j];  
as1[2  *  j  +  1]  =  as[j];  
}  

}  
return  as1;  
}  

public  static  String  getToday()  
{  
return  getToday("/");  
}  

public  static  String  getToday(String  s)  
{  
Date  date  =  new  Date();  
String  s1  =  (new  java.sql.Date(date.getYear(),  date.getMonth(),  date.getDate())).toString();  
s1  =  replace(s1,  "-",  s);  
return  s1;  
}  

public  static  String  date2String(java.sql.Date  date,  String  s)  
{  
String  s1  =  date.toString();  
s1  =  replace(s1,  "-",  s);  
return  s1;  
}  

public  static  String  date2String(Date  date,  String  s)  
{  
String  s1  =  (new  java.sql.Date(date.getYear(),  date.getMonth(),  date.getDate())).toString();  
s1  =  replace(s1,  "-",  s);  
return  s1;  
}  

public  static  String[]  encodingStrings(String  as[],  String  s)  
{  
int  i  =  as.length;  
String  as1[]  =  new  String[i];  
try  
{  
for(int  j  =  0;  j  <  i;  j++)  
as1[j]  =  new  String(as[j].getBytes(s));  

}  
catch(Exception  exception)  
{  
System.out.println(exception.toString());  
}  
return  as1;  
}  

public  static  String  getProfileString(String  s,  String  s1,  String  s2)  
{  
if(s  ==  null)  
return  "";  
int  k  =  s.indexOf(s1  +  "=");  
if(k  <  0)  
return  "";  
int  j  =  (s  +  s2).indexOf(s2,  k);  
if(j  <  0)  
return  "";  
int  i  =  s.indexOf("=",  k);  
if(i  <  0)  
return  "";  
else  
return  s.substring(i  +  1,  j);  
}  

public  static  String  getProfileString(String  s,  String  s1)  
{  
return  getProfileString(s,  s1,  ";");  
}  

public  static  String[]  toStringArray(String  s,  String  s1,  String  s2,  int  i)  
{  
if(s1  ==  null  ||  s1.equals(""))  
s1  =  "  ";  
if(s2  ==  null  ||  s2.equals(""))  
s2  =  "  ";  
int  k  =  getSeparateSum(s,  s1);  
String  as[]  =  new  String[k];  
for(int  j  =  1;  j  <=  k;  j++)  
{  
String  s3  =  getSeparate(s,  s1,  j);  
as[j  -  1]  =  getSeparate(s3,  s2,  i);  
}  

return  as;  
}  

public  static  boolean  isLike(String  s,  String  s1)  
{  
int  i  =  s.length();  
int  j  =  s1.length();  
if(replace(s1,  "%",  "").length()  >  i)  
return  false;  
int  l  =  0;  
int  k  =  0;  
boolean  flag  =  true;  
char  c  =  ´  ´;  
char  c1  =  ´  ´;  
while((k  <  i  ||  l  <  j)  &&  flag)  
{  
if(k  <  i)  
c  =  s.charAt(k);  
if(l  <  j)  
c1  =  s1.charAt(l);  
if(c  ==  c1)  
{  
k++;  
l++;  
}  else  
if(c1  ==  ´_´)  
{  
if(l  <  j  &&  k  <  i)  
return  isLike(s.substring(k  +  1),  s1.substring(l  +  1));  
flag  =  false;  
}  else  
if(c1  ==  ´%´)  
{  
int  i1  =  0;  
for(l++;  (c1  ==  ´_´  ||  c1  ==  ´%´)  &&  l  <  j;  l++)  
{  
if(c1  ==  ´_´)  
i1++;  
c1  =  s1.charAt(l);  
}  

l--;  
if(c1  !=  ´%´)  
{  
boolean  flag1  =  false;  
for(k  =  s.indexOf(c1,  k  +  i1);  k  >=  0  &&  !flag1;  k  =  s.indexOf(c1,  k  +  1))  
flag1  =  isLike(s.substring(k),  s1.substring(l));  

return  flag1;  
}  
k++;  
l  =  j;  
}  else  
{  
flag  =  false;  
}  
}  
return  flag;  
}  

public  static  boolean  setAttribute(String  as[][],  String  s,  String  s1)  
{  
boolean  flag  =  false;  
for(int  i  =  0;  i  <  as.length;  i++)  
if(as[i][0].equalsIgnoreCase(s))  
{  
as[i][1]  =  s1;  
flag  =  true;  
return  flag;  
}  

return  flag;  
}  

public  static  String  getAttribute(String  as[][],  String  s)  
{  
String  s1  =  null;  
for(int  i  =  0;  i  <  as.length;  i++)  
if(as[i][0].equalsIgnoreCase(s))  
{  
s1  =  as[i][1];  
return  s1;  
}  

return  s1;  
}  

public  static  void  testEncoding(ServletRequest  servletrequest,  String  s)  
{  
String  as[]  =  {  
"ASCII",  "Cp1252",  "ISO8859_1",  "UnicodeBig",  "UnicodeBigUnmarked",  "UnicodeLittle",  "UnicodeLittleUnmarked",  "UTF8",  "UTF-16",  "Big5",  
"Cp037",  "Cp273",  "Cp277",  "Cp278",  "Cp280",  "Cp284",  "Cp285",  "Cp297",  "Cp420",  "Cp424",  
"Cp437",  "Cp500",  "Cp737",  "Cp775",  "Cp838",  "Cp850",  "Cp852",  "Cp855",  "Cp856",  "Cp857",  
"Cp858",  "Cp860",  "Cp861",  "Cp862",  "Cp863",  "Cp864",  "Cp865",  "Cp866",  "Cp868",  "Cp869",  
"Cp870",  "Cp871",  "Cp874",  "Cp875",  "Cp918",  "Cp921",  "Cp922",  "Cp930",  "Cp933",  "Cp935",  
"Cp937",  "Cp939",  "Cp942",  "Cp942C",  "Cp943",  "Cp943C",  "Cp948",  "Cp949",  "Cp949C",  "Cp950",  
"Cp964",  "Cp970",  "Cp1006",  "Cp1025",  "Cp1026",  "Cp1046",  "Cp1097",  "Cp1098",  "Cp1112",  "Cp1122",  
"Cp1123",  "Cp1124",  "Cp1140",  "Cp1141",  "Cp1142",  "Cp1143",  "Cp1144",  "Cp1145",  "Cp1146",  "Cp1147",  
"Cp1148",  "Cp1149",  "Cp1250",  "Cp1251",  "Cp1253",  "Cp1254",  "Cp1255",  "Cp1256",  "Cp1257",  "Cp1258",  
"Cp1381",  "Cp1383",  "Cp33722",  "EUC_CN",  "EUC_JP",  "EUC_KR",  "EUC_TW",  "GBK",  "ISO2022CN",  "ISO2022CN_CNS",  
"ISO2022CN_GB",  "ISO2022JP",  "ISO2022KR",  "ISO8859_2",  "ISO8859_3",  "ISO8859_4",  "ISO8859_5",  "ISO8859_6",  "ISO8859_7",  "ISO8859_8",  
"ISO8859_9",  "ISO8859_13",  "ISO8859_15_FDIS",  "JIS0201",  "JIS0208",  "JIS0212",  "JISAutoDetect",  "Johab",  "KOI8_R",  "MS874",  
"MS932",  "MS936",  "MS949",  "MS950",  "MacArabic",  "MacCentralEurope",  "MacCroatian",  "MacCyrillic",  "MacDingbat",  "MacGreek",  
"MacHebrew",  "MacIceland",  "MacRoman",  "MacRomania",  "MacSymbol",  "MacThai",  "MacTurkish",  "MacUkraine",  "SJIS",  "TIS620"  
};  
int  i  =  as.length;  
String  s1  =  servletrequest.getParameter(s);  
System.out.println("Value:"  +  s1);  
for(int  j  =  0;  j  <  i;  j++)  
try  
{  
String  s2  =  new  String(s1.getBytes(as[j]),  "UTF-8");  
System.out.println(as[j]  +  ":"  +  s2);  
}  
catch(Exception  exception)  
{  
System.out.println(as[j]  +  ":  not  support");  
}  

}  

public  static  String  getRelativeAccountMonth(String  s,  String  s1,  int  i)  
{  
String  s2  =  s.substring(0,  4);  
String  s3  =  s.substring(5,  7);  
int  j  =  Integer.valueOf(s2).intValue();  
int  k  =  Integer.valueOf(s3).intValue();  
if(s1.equalsIgnoreCase("year"))  
j  +=  i;  
else  
if(s1.equalsIgnoreCase("month"))  
{  
j  +=  (k  +  i)  /  12;  
k  =  (k  +  i)  %  12;  
if(k  <=  0)  
{  
j--;  
k  +=  12;  
}  
}  
s2  =  String.valueOf(j);  
s3  =  String.valueOf(k);  
if(s3.length()  ==  1)  
s3  =  "0"  +  s3;  
return  s2  +  "/"  +  s3;  
}  

public  static  String  numberToChinese(double  d)  
{  
DecimalFormat  decimalformat  =  new  DecimalFormat("############0.00");  
String  s  =  decimalformat.format(d);  
int  i  =  s.indexOf(".");  
if(s.substring(i).compareTo(".00")  ==  0)  
s  =  s.substring(0,  i);  
String  s1  =  "";  
String  as[]  =  new  String[4];  
String  as1[]  =  new  String[4];  
String  as2[]  =  new  String[2];  
String  s2  =  "";  
String  s4  =  "";  
String  s6  =  "";  
int  j  =  0;  
int  k  =  0;  
boolean  flag  =  false;  
as[0]  =  "";  
as[1]  =  "/u62FE";  
as[2]  =  "/u4F70";  
as[3]  =  "/u4EDF";  
as1[0]  =  "";  
as1[1]  =  "/u4E07";  
as1[2]  =  "/u4EBF";  
as1[3]  =  "/u4E07";  
as2[0]  =  "/u5206";  
as2[1]  =  "/u89D2";  
if(s.compareTo("0")  ==  0  ||  s.compareTo("0.0")  ==  0  ||  s.compareTo("0.00")  ==  0)  
{  
s6  =  "/u96F6/u5143/u6574";  
return  s6;  
}  
if(s.indexOf(".")  >  0)  
s1  =  s.substring(0,  s.indexOf("."));  
else  
s1  =  s;  
j  =  s1.length()  %  4  ==  0  ?  s1.length()  /  4  :  s1.length()  /  4  +  1;  
for(int  i1  =  j;  i1  >=  1;  i1--)  
{  
int  l;  
if(i1  ==  j  &&  s1.length()  %  4  !=  0)  
l  =  s1.length()  %  4;  
else  
l  =  4;  
String  s3  =  s1.substring(k,  k  +  l);  
for(int  j1  =  0;  j1  <  s3.length();  j1++)  
if(Integer.parseInt(s3.substring(j1,  j1  +  1))  !=  0)  
switch(Integer.parseInt(s3.substring(j1,  j1  +  1)))  
{  
case  1:  //  ´/001´  
s6  =  s6  +  "/u58F9"  +  as[s3.length()  -  j1  -  1];  
break;  

case  2:  //  ´/002´  
s6  =  s6  +  "/u8D30"  +  as[s3.length()  -  j1  -  1];  
break;  

case  3:  //  ´/003´  
s6  =  s6  +  "/u53C1"  +  as[s3.length()  -  j1  -  1];  
break;  

case  4:  //  ´/004´  
s6  =  s6  +  "/u8086"  +  as[s3.length()  -  j1  -  1];  
break;  

case  5:  //  ´/005´  
s6  =  s6  +  "/u4F0D"  +  as[s3.length()  -  j1  -  1];  
break;  

case  6:  //  ´/006´  
s6  =  s6  +  "/u9646"  +  as[s3.length()  -  j1  -  1];  
break;  

case  7:  //  ´/007´  
s6  =  s6  +  "/u67D2"  +  as[s3.length()  -  j1  -  1];  
break;  

case  8:  //  ´/b´  
s6  =  s6  +  "/u634C"  +  as[s3.length()  -  j1  -  1];  
break;  

case  9:  //  ´/t´  
s6  =  s6  +  "/u7396"  +  as[s3.length()  -  j1  -  1];  
break;  
}  
else  
if(j1  +  1  <  s3.length()  &&  s3.charAt(j1  +  1)  !=  ´0´)  
s6  =  s6  +  "/u96F6";  

k  +=  l;  
if(i1  <  j)  
{  
if(Integer.parseInt(s3.substring(s3.length()  -  1,  s3.length()))  !=  0  ||  Integer.parseInt(s3.substring(s3.length()  -  2,  s3.length()  -  1))  !=  0  ||  Integer.parseInt(s3.substring(s3.length()  -  3,  s3.length()  -  2))  !=  0  ||  Integer.parseInt(s3.substring(s3.length()  -  4,  s3.length()  -  3))  !=  0)  
s6  =  s6  +  as1[i1  -  1];  
}  else  
{  
s6  =  s6  +  as1[i1  -  1];  
}  
}  

if(s6.length()  >  0)  
s6  =  s6  +  "/u5143";  
if(s.indexOf(".")  >  0)  
{  
String  s5  =  s.substring(s.indexOf(".")  +  1);  
for(int  k1  =  0;  k1  <  2;  k1++)  
if(Integer.parseInt(s5.substring(k1,  k1  +  1))  !=  0)  
switch(Integer.parseInt(s5.substring(k1,  k1  +  1)))  
{  
case  1:  //  ´/001´  
s6  =  s6  +  "/u58F9"  +  as2[1  -  k1];  
break;  

case  2:  //  ´/002´  
s6  =  s6  +  "/u8D30"  +  as2[1  -  k1];  
break;  

case  3:  //  ´/003´  
s6  =  s6  +  "/u53C1"  +  as2[1  -  k1];  
break;  

case  4:  //  ´/004´  
s6  =  s6  +  "/u8086"  +  as2[1  -  k1];  
break;  

case  5:  //  ´/005´  
s6  =  s6  +  "/u4F0D"  +  as2[1  -  k1];  
break;  

case  6:  //  ´/006´  
s6  =  s6  +  "/u9646"  +  as2[1  -  k1];  
break;  

case  7:  //  ´/007´  
s6  =  s6  +  "/u67D2"  +  as2[1  -  k1];  
break;  

case  8:  //  ´/b´  
s6  =  s6  +  "/u634C"  +  as2[1  -  k1];  
break;  

case  9:  //  ´/t´  
s6  =  s6  +  "/u7396"  +  as2[1  -  k1];  
break;  
}  
else  
if(s6.length()  >  0)  
s6  =  s6  +  "/u96F6";  

}  else  
{  
s6  =  s6  +  "/u6574";  
}  
if(s6.substring(s6.length()  -  1).compareTo("/u96F6")  ==  0)  
s6  =  s6.substring(0,  s6.length()  -  1);  
return  s6;  
}  
}
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值