今回はちょっとJavaの備忘録。 Javaで半角全角を変換する処理を書くのは結構めんどいです。 以前、全角英数を半角英数にするという処理を処理を書くのがいやで、ICU4Jなるライブラリで実装したことがありました。 このライブラリのNormalizer#normalize()なるメソッドをつかって String str = "ABCDEFG12345アイウエオABC123アイウエオ"; String rtn = Normalizer.normalize(str, Normalizer.NFKC); System.out.println(rtn); ってすると ABCDEFG12345アイウエオABC123アイウエオ 全角英数は半角英数に、半角カナは全角カナに。みたいなかんじになります。 で、今回仕事で全ての半角文字を全角文字にしたいという場面に出くわしたもので、またICU4Jで素
Unicode にはいろいろと特徴があるのですが、その中の 1 つに正規化というものがあります。 これを理解するにはまず互換文字と、正規等価と互換等価を理解しなくてはいけないわけですが、私もよく分かっていません ^^;; Impress の Internet Watch の連載記事「文字の海、ビットの舟」の特別編 24, 25 や貞廣氏の「使いこなそうユニコード」の「Unicode 正規化とは」などをご覧ください。 あっ、原典にあたりたい人には Unicode Standard Annex #15: Unicode Normalization Forms をご覧ください。 で、簡単にいえば「が」を「か」+「゛」としてあつかえるということらしいです。この場合は本当に等しいかどうかといわれれば等しくないわけですね。 で、文字としてちゃんと等しい場合を正規等価、前述の例のような場合を互換等価とい
ResouceBundleの制御追加(java.util.ResourceBundle.Control)ResouceBundleの内部クラスとしてResourceBundle.Controlが追加され、読み込みの優先順位などが指定出来るようになった。以下はsample.properties, sample_ja.propertiesファイルを配置した例。 #sample.propertiesファイル msg.sample=This is default properties. #sample_ja.propertiesファイル msg.sample=This is ja_properties. //ロケール指定無しでどのファイルがロードされるのか調べる ResourceBundle r1 = ResourceBundle.getBundle("example.sample"); Syst
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く