最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)數(shù)字轉(zhuǎn)成英文的方法

 更新時(shí)間:2015年05月27日 15:56:18   作者:csdn_2013  
這篇文章主要介紹了Java實(shí)現(xiàn)數(shù)字轉(zhuǎn)成英文的方法,涉及java數(shù)組與字符串的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java實(shí)現(xiàn)數(shù)字轉(zhuǎn)成英文的方法。分享給大家供大家參考。具體分析如下:

英文數(shù)詞,按3位3位區(qū)分

Hundred: 100
Thousand:1,000
Million: 1,000,000
Billion: 1,000,000,000
Trillion: 1,000,000,000,000
Quintillion: 1,000,000,000,000,000,000
Sextillion: 1,000,000,000,000,000,000,000
Nonillion: 1,000,000,000,000,000,000,000,000,000,000
Centillion: 1 followed by 303 zeros

所以把數(shù)字字符串按3位分割,分別解析

public class NumUtil {
 public static final String[] enNum = { // 基本數(shù)詞表
 "zero", "one", "tow", "three", "four", "five", "six", "seven", "eight",
  "nine", "ten", "eleven", "twelve", "thirteen", "fourteen",
  "fifteen", "sixteen", "seventeen", "eighteen", "nineteen",
  "twenty", "", "", "", "", "", "", "", "", "", "thirty", "", "", "",
  "", "", "", "", "", "", "fourty", "", "", "", "", "", "", "", "",
  "", "fifty", "", "", "", "", "", "", "", "", "", "sixty", "", "",
  "", "", "", "", "", "", "", "seventy", "", "", "", "", "", "", "",
  "", "", "eighty", "", "", "", "", "", "", "", "", "", "ninety" };
 public static final String[] enUnit = { "hundred", "thousand", "million",
  "billion", "trillion", "quintillion" }; // 單位表
 public static void main(String[] args) {
 System.out.println(analyze(1)); // 測試數(shù)據(jù)
 System.out.println(analyze(21));
 System.out.println(analyze(105));
 System.out.println(analyze(3250));
 System.out.println(analyze(47826));
 System.out.println(analyze(56945781));
 }
 public static String analyze(long num) {
 // long型參數(shù),
 return analyze(String.valueOf(num));
 // 因?yàn)閘ong型有極限,所以以字符串參數(shù)方法為主
 }
 public static String analyze(String num) {
 // 數(shù)字字符串參數(shù)
 // 判斷字符串是否為數(shù)字
 if (!num.matches("\\d+")) {
  return String.format("%s is not number", num);
 }
 num = num.replaceAll("^[0]*([1-9]*)", "$1");
 // 把字符串前面的0去掉
 if (num.length() == 0) {
 // 如果長度為0,則原串都是0
  return enNum[0];
 } else if (num.length() > 9) {
 // 如果大于9,即大于999999999,題目限制條件
  return "too big";
 }
 // 按3位分割分組
 int count = (num.length() % 3 == 0) ? num.length() / 3
  : num.length() / 3 + 1;
 if (count > enUnit.length) {
  return "too big";
 } // 判斷組單位是否超過,
 // 可以根據(jù)需求適當(dāng)追加enUnit
 String[] group = new String[count];
 for (int i = num.length(), j = group.length - 1; i > 0; i -= 3) {
  group[j--] = num.substring(Math.max(i - 3, 0), i);
 }
 StringBuilder buf = new StringBuilder(); // 結(jié)果保存
 for (int i = 0; i < count; i++) { // 遍歷分割的組
  int v = Integer.valueOf(group[i]);
  if (v >= 100) { // 因?yàn)榘?位分割,所以這里不會有超過999的數(shù)
  buf.append(enNum[v / 100]).append(" ").append(enUnit[0])
   .append(" ");
  v = v % 100; // 獲取百位,并得到百位以后的數(shù)
  if (v != 0) {
   buf.append("and ");
  } // 如果百位后的數(shù)不為0,則追加and
  }
  if (v != 0) { // 前提是v不為0才作解析
  if (v < 20 || v % 10 == 0) {
  // 如果小于20或10的整數(shù)倍,直接取基本數(shù)詞表的單詞
   buf.append(enNum[v]).append(" ");
  } else { // 否則取10位數(shù)詞,再取個(gè)位數(shù)詞
   buf.append(enNum[v - v % 10]).append(" ");
   buf.append(enNum[v % 10]).append(" ");
  }
  if (i != count - 1) { // 百位以上的組追加相應(yīng)的單位
   buf.append(enUnit[count - 1 - i]).append(" ");
  }
  }
 }
 return buf.toString().trim(); // 返回值
 }
}

希望本文所述對大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java基礎(chǔ)之Stream流原理與用法詳解

    Java基礎(chǔ)之Stream流原理與用法詳解

    從Java1.8開始提出了Stream流的概念,側(cè)重對于源數(shù)據(jù)計(jì)算能力的封裝,并且支持序列與并行兩種操作方式。本文就來為大家詳細(xì)講講Stream流原理與用法
    2022-08-08
  • Spring IOC中的Bean對象用法

    Spring IOC中的Bean對象用法

    這篇文章主要介紹了Spring IOC中的Bean對象用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中Date時(shí)區(qū)的轉(zhuǎn)換代碼示例

    Java中Date時(shí)區(qū)的轉(zhuǎn)換代碼示例

    這篇文章主要給大家介紹了關(guān)于Java中Date時(shí)區(qū)轉(zhuǎn)換的相關(guān)資料,當(dāng)在不同的時(shí)區(qū)使用相同程序,時(shí)間的值只會為當(dāng)?shù)貢r(shí)間,這樣就會造成時(shí)間混亂,需要的朋友可以參考下
    2023-07-07
  • Java實(shí)現(xiàn)聊天室界面

    Java實(shí)現(xiàn)聊天室界面

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)聊天室界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 解決spring項(xiàng)目找不到Aspect依賴注解的問題

    解決spring項(xiàng)目找不到Aspect依賴注解的問題

    這篇文章主要介紹了解決spring項(xiàng)目找不到Aspect依賴注解的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java 獲取已知文件擴(kuò)展名的代碼

    java 獲取已知文件擴(kuò)展名的代碼

    java 編寫程序獲取已知文件的擴(kuò)展名. 注意: abc.txt的擴(kuò)展名是txt, abc.java.txt的擴(kuò)展名也是txt.,需要的朋友可以參考下
    2017-02-02
  • 解決IDEA中同項(xiàng)目引用報(bào)紅問題

    解決IDEA中同項(xiàng)目引用報(bào)紅問題

    在IDEA中,如果項(xiàng)目引用報(bào)紅,可能是因?yàn)镮DEA的引用緩存問題,可以通過File->Invalidate Caches/Restart清空緩存并重建索引來解決,這個(gè)方法可以幫助解決同項(xiàng)目中引用找不到的問題,恢復(fù)正常的項(xiàng)目引用,消除報(bào)紅
    2024-09-09
  • Idea里github的圖形化操作配置方法

    Idea里github的圖形化操作配置方法

    這篇文章主要介紹了Idea里github的圖形化操作配置方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java中對象的比較操作實(shí)例分析

    Java中對象的比較操作實(shí)例分析

    這篇文章主要介紹了Java中對象的比較操作,結(jié)合實(shí)例形式分析了java對象比較操作實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • java基礎(chǔ)的詳細(xì)了解第四天

    java基礎(chǔ)的詳細(xì)了解第四天

    這篇文章對Java編程語言的基礎(chǔ)知識作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來幫助
    2021-08-08

最新評論

元阳县| 石泉县| 衡阳县| 罗源县| 垫江县| 平顶山市| 彭水| 毕节市| 博爱县| 鄂伦春自治旗| 万宁市| 内丘县| 清丰县| 蛟河市| 温宿县| 苏州市| 宣城市| 河源市| 陇西县| 伊宁县| 台东市| 茌平县| 湘阴县| 茌平县| 耒阳市| 闽侯县| 永吉县| 林西县| 兴城市| 巴中市| 龙井市| 逊克县| 阿克| 长汀县| 饶阳县| 乐都县| 博湖县| 黎平县| 仁寿县| 冕宁县| 柘城县|