2007-02-25 13:41:53

Java備忘録11 - 半角英数字-を全角英数字に文字列を置換するメソッド

テーマ:java・struts・eclipse

やっぱりのんびり更新。

読者登録して頂いたみなさま。申し訳ねぇ。

気温が上がったり下がったり、静電気パチパチな季節、いかがお過ごしでしょうか。

管理人はパチパチ体質です。

静電気が弾ける音が聞こえるくらいのパチパチです。

今朝、玄関先で金属製のドアノブに文句たれました。


「ドアノブから返事はない、ただのドアノブのようだ」


・・・痛かったっす、ドアノブ。


そんな事はさておいて、今回はJavaプログラマーらしくサンプルソースです。

動作確認済み。

応用できれば置換プログラムになります。


○環境

 windows 2000

 J2SDK 1.4.2

 Eclipse 3.1


//以下ソース-----------------------------------------------

public class HankakuToZenkaku {

    /** 全角英数字 */
    private static String sZen = "0123456789"
        + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        + "abcdefghijklmnopqrstuvwxyz";

    /** 半角英数字 */
    private static String sHan = "0123456789"
        + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

    /**
     * 半角英数字->全角英数字に置換する。
     * 原理は、置換対象文字列 sSrc から1文字づつ取り出して
     * sHan に該当する文字があったら、その文字が何文字目にあるか取得して、sZen から同じ文字目から文字を
     * 取ると、全角にすり返るという方法。
     * 例)
     *   sSrc = "ab1";
     *   1番目の文字 "a" は、sHanの36文字目なので、sZenの36文字目は、"a"で、置換
     *   2番目の文字 "b" は、sHanの37文字目なので、sZenの37文字目は、"b"で、置換
     *   3番目の文字 "1" は、sHanの1文字目なので、sZenの1文字目は、"1"で、置換
     * @param args
     */
    public static void main(String[] args) {

        String sSrc = "aABBあ漢字-zYあ";  //変換対象文字

        //対象文字数分ループ
        for (int iLoop = 0; iLoop < sSrc.length(); iLoop++) {

            //1.対象文字列よりiLoop番目の文字取得
            //2.文字型を文字型に変換
            //3.sHan(半角文字)の何番目に該当するか取得->iPosに格納
            int iPos = sHan.indexOf(String.valueOf(sSrc.charAt(iLoop)));

            //sHan(半角文字)に該当する文字があった場合
            if(iPos > -1) {

                //sSrc = sSrcの0~iLoop番目の文字列を取得
                //       + sZen(全角文字)からiPos番目の文字を1つ取得
                //       + sSrcのiLoop番目+1より後ろの文字列を取得
                sSrc = sSrc.substring(0,iLoop) + sZen.charAt(iPos) + sSrc.substring(iLoop+1);
            }
        }

        //変換後出力
        System.out.println(sSrc);
    }
}


//ここまで-----------------------------------------------

<参考リンク>

●FAQ/29 - SakuraEditorWiki

http://sakura.qp.land.to/?FAQ%2F29
サンプルマクロ 英数字のみ全角→半角(js) をJavaにアレンジ

 ○[親リンク] SakuraEditorWiki
  http://sakura.qp.land.to/

 

記事がお役に立てたら、クリックお願いします。


Amebaおすすめキーワード