阿拉伯數字轉中文數字工具類

2021-10-04 18:44:21 字數 2337 閱讀 4008

在有些實際場景中,我們有時候需要把阿拉伯數字轉為中文數字。在中文數字裡,我們習慣說十,不說一十,習慣說十一,不說一十一,所以在**裡需要把這一口語習慣考慮進去。另外,我們習慣說一千零一 ,不說一千零零一,在**裡也需要考慮這些。具體**如下:

1.工具類

package com.mayi1203.myproject.util;

/** * 阿拉伯數字轉中文數字工具類,只考慮1到99999的轉換。

* @author 碼蟻1203

* @date 2023年4月5日

*/public

final

class

numberutils

;public

static

final string[

] chinese_number_unit =

;public

static

final string blank_string ="";

public

static

final string arabictochinese

(int number)

string source = string.

valueof

(number)

; string result = blank_string;

int length = source.

length()

;for

(int i =

0; i < length; i++

)else

if(i != length -

1&& chinesenumber !=0)

else

if(i == length -

1&& chinesenumber !=0)

else

if(i != length -

1&& chinesenumber ==0&&

!result.

substring

(len -

1, len)

.equals

(chinese_numbers[chinesenumber]))

}return result;

}}

2.測試類

2.1 測試單個數字

package com.mayi1203.myproject.util;

/** * 測試類

* @author 碼蟻1203

* @date 2023年4月5日

*/public

class

test

}

列印結果:

2.2 測試十

package com.mayi1203.myproject.util;

/** * 測試類

* @author 碼蟻1203

* @date 2023年4月5日

*/public

class

test

}

列印結果:

2.3 測試三個數字

package com.mayi1203.myproject.util;

/** * 測試類

* @author 碼蟻1203

* @date 2023年4月5日

*/public

class

test

}

列印結果:

一百零一
2.4 測試四個數字

package com.mayi1203.myproject.util;

/** * 測試類

* @author 碼蟻1203

* @date 2023年4月5日

*/public

class

test

}

列印結果:

一千零一
2.5 測試五個數字

package com.mayi1203.myproject.util;

/** * 測試類

* @author 碼蟻1203

* @date 2023年4月5日

*/public

class

test

}

列印結果:

九萬九千零九

中文數字轉阿拉伯數字

這個題與leetcode第13題羅馬數字轉換很相似 13.roman to integer 我開始想用c 處理,進行漢字 個十百千萬 與數字的對應,但是中文字元不屬於ascii碼,直接使用標準類模板裡的string會導致漢字亂碼。所以得使用寬字串wstring和寬字元wchar t 使用stl中的m...

中文數字轉阿拉伯數字

中文數字的權位是明的,阿拉伯數字的權位則隱含在數字的位置中。怎麼將文字權位轉換為數字權位,下面解析。對於十進位制阿拉伯數字,數字的所在位數就是該數字與10的倍數關係。個位就是1倍,十位就是10倍,以此類推。通過這個關係,可以將阿拉伯數字隱含的權位轉換成10的倍數表示,比如 四萬兩千五百一十二 等於 ...

阿拉伯數字轉中文數字

推薦閱讀 例如 將102轉為一百零二 將08轉為八。local chnnumchar local chnunitchar local chnunitsection local function sectiontochinese section,chinesenum local setionchine...