<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    摘 :http://www.java2000.net/p32


    import java.math.BigDecimal;   
      
    public class ConvertNumber 
    {   
      
    /** 定義數(shù)組存放數(shù)字對應(yīng)的大寫 */
      
      
    private final static String[] STR_NUMBER = """""""""""""""""""" }
    ;   
      
      
    /** 定義數(shù)組存放位數(shù)的大寫 */
      
      
    private final static String[] STR_MODIFY = """""""""""""""""""""""" }
    ;   
      
      
    /**  
       * 轉(zhuǎn)化整數(shù)部分  
       *   
       * 
    @param
     tempString  
       * 
    @return
     返回整數(shù)部分  
       
    */
      
      
    private static String getInteger(String tempString) 
    {   
        
    /** 用來保存整數(shù)部分數(shù)字串 */
      
        String strInteger 
    = null;//     

        /** 記錄"."所在位置 */  
        
    int intDotPos = tempString.indexOf("."
    );   
        
    int intSignPos = tempString.indexOf("-"
    );   
        
    if (intDotPos == -1
    )   
          intDotPos 
    =
     tempString.length();   
        
    /** 取出整數(shù)部分 */
      
        strInteger 
    = tempString.substring(intSignPos + 1
    , intDotPos);   
        strInteger 
    = new
     StringBuffer(strInteger).reverse().toString();   
        StringBuffer sbResult 
    = new
     StringBuffer();   
        
    for (int i = 0; i < strInteger.length(); i++
    {   
          sbResult.append(STR_MODIFY[i]);   
          sbResult.append(STR_NUMBER[strInteger.charAt(i) 
    - 48
    ]);   
        }
       
           
        sbResult 
    =
     sbResult.reverse();   
        replace(sbResult, 
    "零拾"""
    );   
        replace(sbResult, 
    "零佰"""
    );   
        replace(sbResult, 
    "零仟"""
    );   
        replace(sbResult, 
    "零萬"""
    );   
        replace(sbResult, 
    "零億"""
    );   
        replace(sbResult, 
    "零零"""
    );   
        replace(sbResult, 
    "零零零"""
    );   
        
    /** 這兩句不能顛倒順序 */
      
        replace(sbResult, 
    "零零零零萬"""
    );   
        replace(sbResult, 
    "零零零零"""
    );   
        
    /** 這樣讀起來更習慣. */
      
        replace(sbResult, 
    "壹拾億""拾億"
    );   
        replace(sbResult, 
    "壹拾萬""拾萬"
    );   
        
    /** 刪除個位上的零 */
      
        
    if (sbResult.charAt(sbResult.length() - 1== '' && sbResult.length() != 1
    )   
          sbResult.deleteCharAt(sbResult.length() 
    - 1
    );   
        
    if (strInteger.length() == 2
    {   
          replace(sbResult, 
    "壹拾"""
    );   
        }
       
        
    /** 將結(jié)果反轉(zhuǎn)回來. */
      
        
    return
     sbResult.toString();   
      }
       
      
      
    /**  
       * 轉(zhuǎn)化小數(shù)部分 例:輸入22.34返回叁肆  
       *   
       * 
    @param
     tempString  
       * 
    @return
      
       
    */
      
      
    private static String getFraction(String tempString) 
    {   
        String strFraction 
    = null
    ;   
        
    int intDotPos = tempString.indexOf("."
    );   
        
    /** 沒有點說明沒有小數(shù),直接返回 */
      
        
    if (intDotPos == -1
    )   
          
    return ""
    ;   
        strFraction 
    = tempString.substring(intDotPos + 1
    );   
        StringBuffer sbResult 
    = new
     StringBuffer(strFraction.length());   
        
    for (int i = 0; i < strFraction.length(); i++
    {   
          sbResult.append(STR_NUMBER[strFraction.charAt(i) 
    - 48
    ]);   
        }
       
        
    return
     sbResult.toString();   
      }
       
      
      
    /**  
       * 判斷傳入的字符串中是否有.如果有則返回點  
       *   
       * 
    @param
     tempString  
       * 
    @return
      
       
    */
      
      
    private static String getDot(String tempString) 
    {   
        
    return tempString.indexOf("."!= -1 ? "" : ""
    ;   
      }
       
      
      
    /**  
       * 判斷傳入的字符串中是否有-如果有則返回負  
       *   
       * 
    @param
     tempString  
       * 
    @return
      
       
    */
      
      
    private static String getSign(String tempString) 
    {   
        
    return tempString.indexOf("-"!= -1 ? "" : ""
    ;   
      }
       
      
      
    /**  
       * 將一個數(shù)字轉(zhuǎn)化為金額  
       *   
       * 
    @param
     tempNumber 傳入一個double的變量  
       * 
    @return
     返一個轉(zhuǎn)換好的字符串  
       
    */
      
      
    public static String numberToChinese(double tempNumber) 
    {   
        java.text.DecimalFormat df 
    = new java.text.DecimalFormat("#.#########"
    );   
        String pTemp 
    =
     String.valueOf(df.format(tempNumber));   
        StringBuffer sbResult 
    = new StringBuffer(getSign(pTemp) + getInteger(pTemp) + getDot(pTemp) +
     getFraction(pTemp));   
        
    return
     sbResult.toString();   
      }
       
      
      
    public static String numberToChinese(BigDecimal tempNumber) 
    {   
        
    return
     numberToChinese(tempNumber.doubleValue());   
      }
       
      
      
    /**  
       * 替代字符  
       *   
       * 
    @param
     pValue  
       * 
    @param
     pSource  
       * 
    @param
     pDest  
       
    */
      
      
    private static void replace(StringBuffer pValue, String pSource, String pDest) 
    {   
        
    if (pValue == null || pSource == null || pDest == null
    )   
          
    return
    ;   
        
    /** 記錄pSource在pValue中的位置 */
      
        
    int intPos = 0
    ;   
        
    do 
    {   
          intPos 
    =
     pValue.toString().indexOf(pSource);   
          
    /** 沒有找到pSource */
      
          
    if (intPos == -1
    )   
            
    break
    ;   
          pValue.delete(intPos, intPos 
    +
     pSource.length());   
          pValue.insert(intPos, pDest);   
        }
     while (true);   
      }
       
      
      
    /**  
       * 
    @param
     args  
       
    */
      
      
    public static void main(String[] args) 
    {   
        System.out.println(numberToChinese(
    1230400567.8934
    ));   
      }
       
    }
      

    評論

    # re: java 將數(shù)字金額轉(zhuǎn)化為漢字(摘)  回復(fù)  更多評論   

    2012-09-19 15:34 by 線程
    好機會
    主站蜘蛛池模板: 在线免费观看国产| mm1313亚洲国产精品美女| 全黄A免费一级毛片| youjizz亚洲| 亚洲成熟xxxxx电影| 亚洲天堂中文字幕| 亚洲视频国产精品| 亚洲色偷偷综合亚洲AV伊人蜜桃| 亚洲伊人久久精品| 国产黄在线观看免费观看不卡| 国产成人精品一区二区三区免费| 免费av片在线观看网站| 又黄又爽又成人免费视频| 成年美女黄网站18禁免费| 国产精品色午夜视频免费看 | 丁香婷婷亚洲六月综合色| 国产成人精品亚洲| 久久中文字幕免费视频| 搡女人免费视频大全| 精品日韩亚洲AV无码| 亚洲成AV人影片在线观看| 成在线人免费无码高潮喷水| 好久久免费视频高清| 亚洲国产成人乱码精品女人久久久不卡 | 久久一本岛在免费线观看2020| 三上悠亚电影全集免费| 四虎影在线永久免费观看| 亚洲av手机在线观看| 亚洲AV无码专区在线厂| 免费人妻精品一区二区三区| 1000部拍拍拍18勿入免费视频下载 | 91精品国产免费入口| 国产亚洲精品无码专区| 久久精品国产亚洲av成人| 亚洲精品国产第1页| 精品视频免费在线| 狼友av永久网站免费观看| 亚洲最大激情中文字幕| 亚洲日产2021三区在线 | 亚洲国产成人精品久久久国产成人一区二区三区综 | 午夜老司机免费视频|