switch (abc.charAt(i)){
      case 57:
        System.out.print("");
        break;
      case 48:
        System.out.print(i);
        break;
       }
    }

解决方案 »

  1.   

    string abc="0123456789"
    switch (abc.charAt(i)){
          case 57:
            System.out.print("九");
            break;
          case 48:
            System.out.print("O");
            break;
           }
        }
      

  2.   

    一个小测试程序,倒是能运行,好多地方可以改进,大概就这意思吧,我也是初学
    /**
     * <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 "";
      }
    }
      

  3.   

    谢谢Sunnyx(新起点),
    是这个意思。
    非常谢谢。
      

  4.   

    package fy.util;public class Test2 {
      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();
        }
      }}
      

  5.   

    thank adriftor.
    思路好。
    写法是不是有点麻烦。
    请多多指点。
      

  6.   

    以前用VFP写的,转换成java吧。
    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
      

  7.   

    谢谢jwd(12345);
    我正在改。
    用VFP写得倒是挺简单的
    谢谢
      

  8.   

    还是自己改一下吧,去掉金额限制。
    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])));
      }
    }
      

  9.   

    谢谢你:jwd(12345),
    还没有考虑小数点后的情况。
    感谢
    Thanks