<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 線程
    好機會
    主站蜘蛛池模板: 精品成在人线AV无码免费看| 国产在线精品一区免费香蕉| 最近新韩国日本免费观看 | 中中文字幕亚洲无线码| 先锋影音资源片午夜在线观看视频免费播放| 久久久久亚洲av成人无码电影| 九九免费精品视频在这里| 亚洲av无码乱码在线观看野外 | 成人免费无码大片a毛片| 亚洲欧洲日韩极速播放 | 午夜影院免费观看| 亚洲卡一卡2卡三卡4卡无卡三| 久久国产精品国产自线拍免费| 久久99国产亚洲高清观看首页| 波多野结衣免费一区视频| 久久精品国产亚洲香蕉| 色欲国产麻豆一精品一AV一免费| 亚洲av综合avav中文| 4虎1515hh永久免费| 国产婷婷综合丁香亚洲欧洲| 国产嫩草影院精品免费网址| 免费一级毛suv好看的国产网站| 亚洲色偷偷综合亚洲AV伊人| 永久免费av无码网站yy| 91在线亚洲精品专区| 麻豆一区二区免费播放网站| 亚洲风情亚Aⅴ在线发布| 亚洲男人的天堂在线va拉文| a成人毛片免费观看| 亚洲精品成人网站在线播放| 夜夜嘿视频免费看| 人妻巨大乳hd免费看| 亚洲高清在线播放| 手机在线毛片免费播放| fc2成年免费共享视频18| 亚洲精品资源在线| 免费jjzz在在线播放国产| 国产一精品一AV一免费| 国产精品亚洲四区在线观看| 国产精品亚洲mnbav网站| 真人做A免费观看|