數值轉漢字

2021-10-25 15:24:35 字數 2429 閱讀 8001

# author: bao 

import re

defnum_to_mandarin

(num)

:"""

convert int number to mandarin in simplified chinese.

:param num: int

:return: simplified chinese string

in [1]: num_to_mandarin(123784700200019)

out[1]: '一百二十三萬七千八百四十七億零二十萬零一十九'

in [2]: num_to_mandarin(30023)

out[2]: '三萬零二十三'

in [3]: num_to_mandarin(102)

out[3]: '一百零二'

in [4]: num_to_mandarin(15)

out[4]: '十五'

"""defto_mandarin

(string)

: string = re.sub(

'0',

'零', string)

string = re.sub(

'1',

'一', string)

string = re.sub(

'2',

'二', string)

string = re.sub(

'3',

'三', string)

string = re.sub(

'4',

'四', string)

string = re.sub(

'5',

'五', string)

string = re.sub(

'6',

'六', string)

string = re.sub(

'7',

'七', string)

string = re.sub(

'8',

'八', string)

string = re.sub(

'9',

'九', string)

return string

defintegrity

(num)

: k_unit =

['千'

,'百'

,'十',''

] mandarin_str =

'零'*(4

-len

(str

(num))%

4)+ to_mandarin(

str(num)

) seg_bits =

[mandarin_str[

4* i:4*

(i +1)

]for i in

range

(len

(mandarin_str)//4

)]cal_seg = seg_bits[::

-1] result =

for seg_idx, k_seg in

enumerate

(cal_seg)

: mandarin =

''for idx, bit in

enumerate

(k_seg)

:if bit ==

'零':

continue

else

:if k_seg[idx -1]

=='零'

and mandarin:

mandarin +=

'零' mandarin += bit + k_unit[idx]

if k_seg ==

'零'*4:

mandarin =

''else

:if k_seg[0]

=='零'

:try

:if cal_seg[seg_idx +1]

: mandarin =

'零'+ mandarin

except indexerror:

if mandarin.startswith(

'一十'):

mandarin = mandarin.lstrip(

'一')

suffix =

'萬'if seg_idx %

2else

'億'if seg_idx ==0or

not mandarin:

suffix =

''return

''.join(result[::

-1])

return integrity(num)

漢字轉拼音

region 漢字轉拼音 漢字轉拼音類 用法 crazycoderpinyin.covent 漢字 長度 using system.text.regularexpressions build date 20030610 public class crazycoderpinyin 定義陣列 priva...

漢字轉拼音

工具pinyin4j 2.5.0.jar 整理了3個方法,1.漢字轉拼音 2.返回中文姓 中文名 英文姓 last name 英文名 first name 3.返回首字母 public class pinyin4jdemo char hanzi word.tochararray string t2 ...

漢字轉拼音

ios mac os x 漢字轉拼音 網路流行的漢字轉拼音方案是帶乙個拼音碼表,速度快。其實core foundation也提供了一種方案,而且還帶聲調!nsmutablestring ms nsmutablestring alloc initwithstring 我是中國人 if cfstring...