似乎阿拉伯數字轉中文的有很多,中文轉阿拉伯數字的沒找到過,所以自己寫了個。
只能轉整數的,小數因為我的應用不會碰到所以沒考慮,不過要加也很容易。
大家幫看下有什麼問題沒有,或者有什麼改進的建議
之前的**有些問題,在遇到「十」開頭的時候會得到錯誤的結果。現在的為修改後的**,大家幫看下是否還有其他問題
package com.mnv.crawler.parser.misc;
public class numberparser
/*** 把中文數字解析為阿拉伯數字(integer)
* @param prenumber 第二大的進製
* @param chinesenumber 中文數字
* @return 阿拉伯數字(integer),如果是無法識別的中文數字則返回-1
*/private static int parsechinesenumber(string chinesenumber,int prenumber)else if(chinesenumber.indexof("億")!=-1)
string postfix=chinesenumber.substring(index+1,end);
ret=parsechinesenumber(prefix,1)*100000000+parsechinesenumber(postfix,10000000);
}else if(chinesenumber.indexof("萬")!=-1)
string postfix=chinesenumber.substring(index+1,end);
ret=parsechinesenumber(prefix,1)*10000+parsechinesenumber(postfix,1000);
}else if(chinesenumber.indexof("千")!=-1)
string postfix=chinesenumber.substring(index+1,end);
ret=parsechinesenumber(prefix,1)*1000+parsechinesenumber(postfix,100);
}else if(chinesenumber.indexof("百")!=-1)
string postfix=chinesenumber.substring(index+1,end);
ret=parsechinesenumber(prefix,1)*100+parsechinesenumber(postfix,10);
}else if(chinesenumber.indexof("十")!=-1)
string postfix=chinesenumber.substring(index+1,end);
ret=parsechinesenumber(prefix,1)*10+parsechinesenumber(postfix,1);
}else if(chinesenumber.equals("一"))else if (chinesenumber.equals("二"))else if (chinesenumber.equals("三"))else if (chinesenumber.equals("四"))else if (chinesenumber.equals("五"))else if (chinesenumber.equals("六"))else if (chinesenumber.equals("七"))else if (chinesenumber.equals("八"))else if (chinesenumber.equals("九"))else if (chinesenumber.length()==0)else
return ret;
}public static void main(string args)
}
前端練習03 把數字轉換成中文
完成將tochinesenum,可以將數字轉換成中文大寫的表示,處理到萬級別,例如tochinesenum 12345 返回一萬二千三百四十五。將數字按照四位分成一組,存放在輸入中,每一項的處理邏輯其實是相同的,無非是根據最後不同的位置,新增不同的單位即可 分組的過程涉及到了上乙個聯絡的內容,將陣列...
中if判斷中文 阿拉伯數字轉換成中文數字
numberstring函式專門解決這個問題,使用規則如下 圖 1 numberstring函式使用規則 1.純數字轉換 圖 2 三種轉換形式示例 說明 由圖2示例可以看出,numberstring並不能識別負數。為了正常轉換,可以特殊處理 圖 3 負數問題的處理 如圖3,單元格c7的公式為 if ...
把人民幣數字轉換成中文大寫
coding utf 8 usr bin python coding utf 8 import sys def tobig money 0,rmb none big 零 壹 貳 叄 肆 伍 陸 柒 捌 玖 rmb 分 角 圓 拾 佰 仟 萬 拾 佰 仟 億 拾 佰 仟 萬 拾 佰 仟 萬 億 if ...