
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
頭の体操として面白そうだったのでちょっと作ってみました。
英語には興味ないので漢数字に変換するものを作りました。まぁつくりが分かればいいと思うので。なんにせよ、結構泥臭い地道な作業になることは間違いないと思います。Java5.0以上で動作します。
/*
* 作成日: 2006/07/12
*
*/
package ちょっとしたツール;
/**
*/
public class 数字を漢数字に2 {
static String[] 漢数字 = {
"", "一", "二", "三", "四", "五", "六", "七", "八", "九"
};
static String[] 漢数字桁1 = {
"", "十", "百", "千"
};
static String[] 漢数字桁2 = {
"", "万", "億", "兆", "京"
};
public static void main(String[] args) {
int 変換したい数値 = 31234450;
String 漢数字値 = "";
if (変換したい数値 == 0) {
System.out.println("零");
return;
}
int 変換したい数値の桁数 = (int) StrictMath.log10(変換したい数値);
for (int i = 変換したい数値の桁数; i >= 0; i--) {
int 注目する桁 = (int) Math.pow(10, i);
int 注目する桁の数字 = 変換したい数値 / 注目する桁;
漢数字値 = 漢数字値 + 漢数字[注目する桁の数字];
if (i % 4 != 0) {
漢数字値 = 漢数字値 + 漢数字桁1[i % 4];
} else {
漢数字値 = 漢数字値 + 漢数字桁2[i / 4];
}
変換したい数値 = 変換したい数値 - 注目する桁の数字 * 注目する桁;
}
System.out.println(漢数字値);
}
}
No.1
- 回答日時:
ぱっと思いついたアプローチは桁数と数字の対応表を作成しておき、入力文字列を解析、変換という流れです。
{"","one","two","three",・・・,"nine"} 3n-2桁目、3n桁目はここから選び変換{"","","twenty","thirty",・・・,"ninety"} 3n-1桁目はここから選び変換
{"ten","eleven","twelve","thirteen","fourteen",・・・,"nineteen"} 3n-1桁目が1の時はこちらから選ぶ。
3n桁はhundredをつける
4桁ならthousand、7桁ならmillion、・・・
1. 入力された数字列をStringで逆順に格納(1234なら4321)
2. 一文字取得する。 桁数++ (4)
3. 次の文字があるので取得。桁数++ (43)
4. 次の文字があるので取得。桁数++ (432)
5. 3つたまったら解析、変換 1桁目が4なので fore
5.1 2桁目が3なので thirty
5.2 3桁目が2なので two。桁数が3なので hundred を付加。
5.3 併せて two hundred thirty fore の文字列を保存。
6. 2に戻り、1文字取得。桁数++ (1)
7. 次の文字が無いので解析、変換 1桁目が1なのでone。桁数が4なので thousand を付加。
8. one thousand two hundred thirty fore の文字列を保存して出力。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
画像のテキストデータ化・暗号...
-
javaで「全角が含まれているか...
-
オラクルで、半角文字を全角に...
-
VC++にてCString型のフルパスを...
-
COBOLで半角カナを全角カナに変換
-
JavaScriptの変数をjavaのメソ...
-
InputStream.read()でタイムア...
-
JScrollPaneで、表示がおかしく...
-
JavaScriptを使ってロト6の当...
-
JavaScriptとVBScriptに関して
-
JSPでHashMap・配列の変数の値...
-
eclipseに記述したjavaファイル...
-
javaのコンパイルエラーについ...
-
ループ処理の際、最後だけ","を...
-
オブジェクトの中のプロパティ...
-
strutsでlist型の入力を行うには
-
StrutsでJSPからListを受け取り...
-
requestの値が削除されません…
-
VBAで配列の計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
Path型をString型へ変換する(Java)
-
ダブルクォーテーションのrepla...
-
C言語32bitから64bitの移行につ...
-
javascriptで文字列のsjis利用...
-
Visual Basic でのコードをASCI...
-
int型のゼロ埋め
-
substring バイト単位でやりたい
-
文字列の比較
-
COBOLで半角カナを全角カナに変換
-
エクセルVBAで「〜」が表現でき...
-
byte[] を long,float とかに...
-
下記問題の答えが"D"になる意味...
-
全角英数字とハイフンを半角に...
-
javaの初歩的な質問です。
-
Windows-31Jからutf-8への変換...
-
JavaのStringクラスに「外字」...
-
CStringをLPCTSTRへ変換
-
TEXTAREAからのデータを改行入...
-
Arduino(C言語) String "1101" ...
おすすめ情報