switch (abc.charAt(i)){
case 57:
System.out.print("");
break;
case 48:
System.out.print(i);
break;
}
}
case 57:
System.out.print("");
break;
case 48:
System.out.print(i);
break;
}
}
解决方案 »
- jacod问题
- 网络的数据结构和基站的优化怎么样?不知道要准备些什么?
- org.hibernate.TransactionException: Transaction not successfully started
- 如何用Java类实现报表生成
- 得分好机会!!!!在线等
- session Bean调用实体Bean有问题,帮忙看一下,谢谢了。
- 很小的问题但用途很大!帮帮忙
- TOMCAT连接池问题(解决问题200分相送)
- JBuilder9开发EJB时的配置问题
- 正则表达式里 .*?三个合起来啥意思啊
- 有关<j2ee服务器端高级编程>的一个非技术问题,看过的请进...
- 用过j2ee RI,cloudscape的帮忙拉!
switch (abc.charAt(i)){
case 57:
System.out.print("九");
break;
case 48:
System.out.print("O");
break;
}
}
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class Test
{
private String number = "123456789";
public Test()
{
}
public static void main(String[] args)
{
Test testNum = new Test();
testNum.printResult( testNum );
} public String toUpper( double num )
{
String length = "";
length = String.valueOf((String.valueOf(num)).length());
return length;
} public void printResult( Test test )
{
String result = "";
if( number.length() <= 4 )
{
result = test.readThousand( number );
}
else if( number.length() <= 8 && 4 < number.length())
{
result = test.readTenThousand( number );
}
else
{
result = test.readBillion( number );
} System.out.println("====="+result); } public String readThousand( String thNum )
{
String thousand = "";
String hundrand = "";
String teen = "";
String one = "";
if( thNum.length() == 4 )
{
thousand = lowerToUpper(thNum.substring(0,1)) + "仟";
hundrand = lowerToUpper(thNum.substring(1,2)) + "佰";
teen = lowerToUpper(thNum.substring(2,3)) + "拾";
one = lowerToUpper(thNum.substring(3,4)); return (thousand + hundrand + teen + one);
}
if( thNum.length() == 3 )
{
hundrand = lowerToUpper(thNum.substring(0,1)) + "佰";
teen = lowerToUpper(thNum.substring(1,2)) + "拾";
one = lowerToUpper(thNum.substring(2,3)); return ( hundrand + teen + one);
}
if( thNum.length() == 2 )
{
teen = lowerToUpper(thNum.substring(0,1)) + "拾";
one = lowerToUpper(thNum.substring(1,2));
return ( teen + one);
}
if( thNum.length() == 1 )
{
one = thNum;
return lowerToUpper(one);
}
return "";
} public String readTenThousand( String ten )
{
int length = ten.length();
return (readThousand( ten.substring(0, length - 4)) + "万" + readThousand( ten.substring(length - 4, length)));
} public String readBillion( String billion )
{
int length = billion.length();
if( length > 16 )
{ return "=== 递归实现===";
}
else if( length > 12 )
{
return readTenThousand( billion.substring( 0, length - 8 )) + "亿" + readTenThousand(billion.substring(length-8,length));
}
else
{
return readThousand( billion.substring(0,length -8))+ "亿" + readTenThousand(billion.substring(length-8,length));
} } public String lowerToUpper( String lower )
{
if( lower.equals("1") )
{
return "壹";
}
else if( lower.equals("2") )
{
return "贰";
}
else if( lower.equals("3") )
{
return "叁";
}
else if( lower.equals("4") )
{
return "肆";
}
else if( lower.equals("5") )
{
return "伍";
}
else if( lower.equals("6") )
{
return "陆";
}
else if( lower.equals("7") )
{
return "柒";
}
else if( lower.equals("8") )
{
return "拐";
}
else if( lower.equals("9") )
{
return "玖";
}
else if( lower.equals("0") )
{
return "零";
} return "";
}
}
是这个意思。
非常谢谢。
public Test2() {
} public static String replace(String strSource, String strFrom, String strTo) {
String strDest = "";
if (strSource == null || strSource.length() == 0) {
return strDest;
}
else {
int intFromLen = strFrom.length();
int intPos;
while ( (intPos = strSource.indexOf(strFrom)) != -1) {
strDest = strDest + strSource.substring(0, intPos);
strDest = strDest + strTo;
strSource = strSource.substring(intPos + intFromLen);
}
strDest = strDest + strSource;
}
return strDest;
} private static String delOneSameChar(String str, char innerCh) {
String rStr = "";
String tempStr = str;
StringBuffer sb = new StringBuffer(tempStr);
char ch;
boolean delCh = true;
for (int i = 0; i < sb.length(); i++) {
ch = sb.charAt(i);
if (ch == innerCh && delCh) {
sb.deleteCharAt(i);
delCh = false;
}
else {
if (ch == innerCh && !delCh)
delCh = false;
else
delCh = true;
}
}
rStr = sb.toString();
return rStr;
} private static String lowerToUpper(String lower) throws Exception {
if (lower.equals("1")) {
return "壹";
}
if (lower.equals("2")) {
return "贰";
}
if (lower.equals("3")) {
return "叁";
}
if (lower.equals("4")) {
return "肆";
}
if (lower.equals("5")) {
return "伍";
}
if (lower.equals("6")) {
return "陆";
}
if (lower.equals("7")) {
return "柒";
}
if (lower.equals("8")) {
return "捌";
}
if (lower.equals("9")) {
return "玖";
}
if (lower.equals("0")) {
return "零";
} throw new Exception("必须为数值");
} private static String getUnit4(String str4) throws Exception {
if (str4.length() > 4)
throw new Exception("数据长度必须小于等于4");
String rStr = "";
if (str4.equals("0000"))
return "零";
int str4Len = str4.length();
int i = 0;
while (str4Len > 0) {
char ch = str4.charAt(i);
String chStr = lowerToUpper("" + ch);
switch (str4Len) {
case 1:
if (chStr.equals("零"))
chStr = "";
break;
case 2:
if (!chStr.equals("零"))
chStr = chStr + "拾";
break;
case 3:
if (!chStr.equals("零"))
chStr = chStr + "佰";
break;
case 4:
if (!chStr.equals("零"))
chStr = chStr + "千";
break;
}
rStr = rStr + chStr;
str4Len--;
i++;
}
return rStr;
} public static String toBig(String str) throws Exception {
String rStr = "";
String str4Upper = "";
int dot = str.indexOf(".");
String xiao = "";
String zheng = "";
if (dot != -1) {
zheng = str.substring(0, dot);
xiao = str.substring(dot + 1);
}
else {
zheng = str;
xiao = "";
}
int zhengLen = zheng.length();
int phase = zhengLen / 4;
if (zhengLen % 4 != 0)
phase++;
int i = 0;
int endDot = zhengLen;
int startDot = 0;
int lastEndDot = -1;
while (phase > 0) {
if (lastEndDot != -1) {
endDot = lastEndDot - 4;
if (endDot < 0)
endDot = 0;
}
else {
endDot = phase * 4;
if (endDot > zhengLen)
endDot = zhengLen;
}
lastEndDot = endDot;
startDot = endDot - 4;
if (startDot < 0)
startDot = 0;
String str4 = zheng.substring(startDot, endDot);
//System.out.println(str4);
str4Upper = getUnit4(str4);
int yi = i / 2;
String wan = "";
if (i % 2 == 1)
wan = "万";
String yiStr = "";
while (yi > 0) {
yiStr = yiStr + "亿";
yi--;
}
yiStr = wan + yiStr;
while (str4Upper.endsWith("零") && str4Upper.length() > 1) {
str4Upper = str4Upper.substring(0, str4Upper.length() - 1);
}
if (!str4Upper.equals("零")) {
str4Upper = str4Upper + yiStr;
}
//System.out.println(str4Upper);
rStr = str4Upper + rStr;
i++;
phase--;
}
int xiaoLen = xiao.length();
if (xiaoLen > 4)
xiao = xiao.substring(0, 4);
xiaoLen = xiao.length();
String xiaoUpper = "";
for (i = 0; i < xiaoLen; i++) {
char ch = xiao.charAt(i);
String chStr = lowerToUpper("" + ch);
if (!chStr.equals("零"))
switch (i) {
case 0:
chStr = chStr + "角";
break;
case 1:
chStr = chStr + "分";
break;
case 2:
chStr = chStr + "厘";
break;
case 3:
chStr = chStr + "毫";
break;
}
else
chStr = "";
xiaoUpper = xiaoUpper + chStr;
}
while (rStr.endsWith("零"))
rStr = rStr.substring(0, rStr.length() - 1);
while (rStr.startsWith("零"))
rStr = rStr.substring(1, rStr.length());
rStr = rStr + "元" + xiaoUpper;
int lastYi = rStr.lastIndexOf("亿"); if (lastYi != -1) {
String tempStr = rStr.substring(0, lastYi);
String tempStr2 = rStr.substring(lastYi);
while (tempStr.endsWith("亿")) {
tempStr2 = "亿" + tempStr2;
tempStr = rStr.substring(0, tempStr.length() - 1);
}
tempStr = delOneSameChar(tempStr, '亿');
rStr = tempStr + tempStr2;
}
while (rStr.indexOf("零零") != -1)
rStr = replace(rStr, "零零", "零");
if (rStr.startsWith("元")) rStr = "零" + rStr;
return rStr;
} public static void main(String[] args) {
try {
System.out.println(toBig("1054337832323600")); }
catch (Exception ex) {
ex.printStackTrace();
}
}}
思路好。
写法是不是有点麻烦。
请多多指点。
ROCEDURE tochn
lparam je
if type("je")!="N"
messagebox("want 数值!")
endif
local ret, sje, digit, unin, n, f, i
ret=""
sje=alltrim(str(je*100,12))
digit="壹贰叁肆伍陆柒捌玖"
unin="分角元拾佰仟万拾佰仟"
n=len(sje)
f=1
for i=1 to n
di=substr(sje,i,1)
if substr(sje,i,1)!='0'
if f=0
ret=ret+"零"
endif
ret=ret+substr(digit,val(di)*2-1,2)+substr(unin,(n-i)*2+1,2)
f=1
else
f=0
if n-i==6 or n-i==2
ret=ret+substr(unin,(n-i)*2+1,2)
endif
endif
endfor
if substr(sje,n,1)=='0'
ret=ret+"整"
endif
return ret
我正在改。
用VFP写得倒是挺简单的
谢谢
import java.math.*;public class ToChn{
static char[] digit={'壹','贰','叁','肆','伍','陆','柒','捌','玖'};
static char[] unit={'分','角','元','拾','佰','仟','万','拾','佰','仟','亿'}; public static String UpperJe(double je){
return UpperJe(new Long((long)(je*100)).toString());
}
public static String UpperJe(String je){
String sje=new BigDecimal(je).movePointRight(2).setScale(0,BigDecimal.ROUND_FLOOR).toString();
System.out.println(sje+" "+sje.length());
StringBuffer ret=new StringBuffer();
int n=sje.length();
int f=1;
for(int i=0,di=0,j=0;i<n;i++){
di=sje.charAt(i)-'0';
j=n-i;
if(di!=0){
if(f==0) ret.append('零');
ret.append(digit[di-1]);
ret.append(j>3?unit[(j-4)%8+3]:unit[j-1]);
f=1;
}else{
f=0;
if(j%8==3) ret.append(j>3?'亿':'元');
else if(j%8==7&&ret.charAt(ret.length()-1)!='亿') ret.append('万');
}
//}catch(Exception e){System.out.println(ret+" "+i+" "+j+" "); e.printStackTrace();System.exit(-1);}
}
if(f==0) ret.append('整');
return ret.toString();
} public static void main(String[] args){
System.out.println(UpperJe(args[0])); //Double.parseDouble(args[0])));
}
}
还没有考虑小数点后的情况。
感谢
Thanks