日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)

發(fā)布時間:2024/1/8 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

昨天老大問我又沒有寫過中文數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字,我說沒有,我說那應(yīng)該簡單啊,就是將中文對應(yīng)的數(shù)字換成阿拉伯?dāng)?shù)字就好了啊,比如一就換成1,二就換成2…十換成10。可是那么問題來了…
一十二呢…不能是1102吧…這不就坑爹了嗎?一百萬呢…所有我苦苦思索,花費(fèi)了我差不多半天的時間,終于寫出了下面的程序。

public static void main(String[] args){Map<Character, String> numberMap = new HashMap<Character, String>();numberMap.put('零', "0");numberMap.put('一', "1");numberMap.put('二', "2");numberMap.put('三', "3");numberMap.put('四', "4");numberMap.put('五', "5");numberMap.put('六', "6");numberMap.put('七', "7");numberMap.put('八', "8");numberMap.put('九', "9");Map<Character, String> numberBit = new HashMap<Character, String>();numberBit.put('十', "10");numberBit.put('百', "100");numberBit.put('千', "1000");numberBit.put('萬', "10000");/*** 思路:循環(huán)遍歷數(shù)字字符數(shù)組* 舉例:* 九 把numberMap的key為九取出, 即9* 九十 把numberMap的key為九取出并乘以numberBit的key為十的值,即9*10=90* 九十一 把numberMap的key為九取出并乘以numberBit的key為十的值,然后加上numberMap的key為一 的值,即9*10+1=91* 十一 同上10+1=11* 一百萬 先取出numberMap為一的key的值,然后乘以numberBit的key為百的值,然后乘以numberBit的key為萬的值,即1*100*10000=1000000* 一百八十八萬 1*100+(8*10+8)*10000=100+88*10000=1880000 * */long number = 0;//1008571String chinaNumberStr = "一千二百三十四萬五千六百七十八";//12 叁佰貳十 320 三佰二十char[] arrNumber = chinaNumberStr.toCharArray();for (int i = 0; i < arrNumber.length; i++) {char num = arrNumber[i];if (i + 1 < arrNumber.length && numberBit.containsKey(arrNumber[i + 1])) {// 判斷后面的漢字是否是位數(shù)(十百千萬)if (numberMap.containsKey(num)) {// 如果當(dāng)前的漢字不是位數(shù)if(i + 3 < arrNumber.length&&arrNumber[i + 1]=='十'&&numberMap.containsKey(arrNumber[i + 2])){number = number + Integer.parseInt(numberMap.get(num))* Integer.parseInt(numberBit.get(arrNumber[i + 1]));number = number + Integer.parseInt(numberMap.get(arrNumber[i + 2]));number = number * Integer.parseInt(numberBit.get(arrNumber[i + 3]));i=i+2;}else{// 取出當(dāng)前對應(yīng)的數(shù)字*位數(shù)對應(yīng)倍數(shù)累加在number上number = number + Integer.parseInt(numberMap.get(num))* Integer.parseInt(numberBit.get(arrNumber[i + 1]));}} else if (numberBit.containsKey(num)) {// 如果當(dāng)前的漢字是位數(shù),即當(dāng)前的漢字和后一個漢字都是位數(shù)(比如百萬)//則用number直接*后一個位數(shù)number = number * Integer.parseInt(numberBit.get(arrNumber[i + 1]));}} else if (numberMap.containsKey(num)) {number = number + Integer.parseInt(numberMap.get(num));} else if (num == '十' && i == 0) {//“十”特殊處理 當(dāng)出現(xiàn)十八之類的 十在前面的情況number = Integer.parseInt(numberBit.get('十'));}}System.out.println(number);}

其實(shí)這個老大只是問我有沒有寫過類似的程序,并沒有讓我寫它,但是我就是喜歡挑戰(zhàn)。唉,主要是想看看我自己有沒有這個能力寫出這個程序來,我也是給朋友測了測,發(fā)現(xiàn)了一些BUG,改了不少,后面還是寫出來了。不過還是有點(diǎn)不盡人意的地方,比如:"一千一"轉(zhuǎn)換之后變成1001,這里應(yīng)該是1100的,所有要想是1100必須是"一千一百"后面得加個百字。這就是這里的不足了。

我剛剛加了一個numberBit.put(‘億’, “100000000”); 想轉(zhuǎn)下一億試一試,結(jié)果不行,可能我還要繼續(xù)改進(jìn)下。這里暫時只能轉(zhuǎn)換千萬及千萬以下的數(shù)字,不過對于一般的轉(zhuǎn)換也足夠了,如果轉(zhuǎn)"壹仟壹佰"這種數(shù)字的直接改上面的map里面的key就行了。

我的這個算法有點(diǎn)過于復(fù)雜,每個程序的思路第一次都會比較復(fù)雜,后面多想幾次會想出更加簡便的算法,所以你們想出了更好的算法歡迎評論。我去改進(jìn)我的代碼了,之后我會把我改進(jìn)的代碼貼上來的。

總結(jié)

以上是生活随笔為你收集整理的中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本成人一二三区 | 中文字幕日本一区 | 成人精品免费在线观看 | 强迫凌虐淫辱の牝奴在线观看 | 国产51精品| 中文字幕在线网 | 国产伦一区二区 | 欧美亚洲一区二区三区 | 99riav3国产精品视频 | 国产精品播放 | 欧美怡红院 | 国产黄色免费网站 | av一片| 日本三级欧美三级 | 妺妺窝人体色www在线下载 | 日韩国产欧美一区二区三区 | 国产精品亚洲天堂 | 成人首页 | 丰满人妻熟妇乱偷人无码 | 国产一线天粉嫩馒头极品av | a在线观看视频 | 噼里啪啦免费看 | 91亚洲成人 | 国产一区黄 | 色播五月激情五月 | 欧美一区二区三区四区五区六区 | av一区在线播放 | 欧美人与性禽动交精品 | 成人在线视频免费看 | 久久久国产高清 | 日韩中文字幕2019 | 91视频久久 | 女生扒开尿口 | 草草影院欧美 | 精品免费一区 | 欧美少妇性生活 | 成人av网址大全 | 香蕉视频成人在线 | 麻豆精品视频免费观看 | 精品国产免费一区二区三区 | av网站导航 | 麻豆传媒一区二区三区 | 亚洲久视频 | 蜜桃精品成人影片 | 国产亚洲精品电影 | 2019国产精品 | 国产原创在线播放 | 美女100%视频免费观看 | 一区二区不卡免费视频 | 岛国片在线播放 | 美女国产精品 | 91视频久久久 | 四虎精品在线观看 | 婷婷五月在线视频 | 美妇av| 榴莲视频黄色 | 99自拍偷拍 | 污污的网站在线观看 | 国内av自拍 | 男人和女人日批 | 开心激情av | 一区二区三区在线观看视频 | 成人免费在线小视频 | 中文字幕8 | 韩国伦理片观看 | 91tv国产成人福利 | 无码人妻精品一区二区三区99不卡 | 久久男女 | 国产乱码精品一区二区三区不卡 | 中文字字幕在线中文乱码 | 乱视频在线观看 | 久久网免费视频 | 日韩第一页在线观看 | 潮喷失禁大喷水无码 | 精品久久久久久久久久岛国gif | 伊人超碰 | 免费av毛片 | 亚洲 成人 av | 亚洲视频一二三区 | 日韩最新视频 | 69xxxx日本| 亚洲精品三级 | 深夜网站在线 | 五月激情综合 | 色噜噜在线播放 | www.jizzcom| 亚洲精品乱码久久久久久不卡 | 欧美性网站 | 久久精品国产精品 | 久久综合久久网 | 91成人福利视频 | 国产精品99在线观看 | 日本www黄 | 国产又粗又猛又爽69xx | 久久精品不卡 | wwwav视频 | av地址在线观看 | 亚洲色欲色欲www | 国产熟女高潮视频 |