数字を漢数字に変換する
数字を漢数字に変換する関数です。12345は「一万二千三百四十五」、11111は「一万千百十一」、100000001は「一億一」にならないといけません。
要点は三つ。
- 間に数がないときは万、億、兆(大数という)を足さない。
- 位の数が1のとき、十、百、千の桁には一を足さない。
- 0のときは詰める。
ソースコード
private string toKansuji(long number) {
if (number == 0) {
return "〇";
}
string[] kl = new string[] { "", "十", "百", "千" };
string[] tl = new string[] { "", "万", "億", "兆", "京" };
string[] nl = new string[] { "", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
string str = "";
int keta = 0;
while (number > 0) {
int k = keta % 4;
int n = (int)(number % 10);
if (k == 0 && number % 10000 > 0) {
str = tl[keta / 4] + str;
}
if (k != 0 && n == 1) {
str = kl[k] + str;
} else if (n != 0) {
str = nl[n] + kl[k] + str;
}
keta++;
number /= 10;
}
return str;
}
昔書いたテーマを思い起こしてみたものですが、「どう書く?」のお題になってたようでした。
まあ、みんな似たようなコードになりますな。
どう書く?org - 整数の漢数字表記
http://ja.doukaku.org/38/
0 件のコメント :
コメントを投稿