Javaサンプルソース公開

半角全角変換

Javaサンプルソース公開 - 半角全角変換

 本ソースコードは、半角英数字および半角カナ文字を全角文字に変換するためのJavaソースコードです。

 本ソースコードはフリーソフトウェアですので、アーカイブの転載・配布は、自由に行っていただいてかまいません。ソースコードの修正についても自由に行ってもらって結構です。商用利用についての制限もありません。

 本ソースコードが、ご利用になられる方のJavaの学習、または、Javaプログラム開発の一助になれば幸いに思います。

 ダウンロードはこちらから(外部サイト) >>

HankakuToZenkaku.java


import java.util.HashMap;

/**
 * 半角全角変換 Ver1.1 - Javaソース
 * コマンドライン引数で入力された半角英数カナ文字を全角文字に変換する。
 *
 * @author Copyright(C) 2008-2009 東郷 功
 * @since 1.5
 * @version 1.5
 * @see 特定非営利活動法人 電脳世代
 */
public class HankakuToZenkaku {

    public static void main(String[] args) {
            if (args.length == 0) {
                // ヘルプ表示
                System.out.println("");
                System.out.println("<<使用方法>>");
                System.out.println("  java HankakuToZenkaku [文字列]");
                System.out.println("");
            } else if (args.length == 1) {
                System.out.println(Han2Zen(args[0]));
            }
    }

    public static String Han2Zen(String s) {

        HashMap<String,String> hmCharTbl = new HashMap<String,String>();

        hmCharTbl.put("0", "0");
        hmCharTbl.put("1", "1");
        hmCharTbl.put("2", "2");
        hmCharTbl.put("3", "3");
        hmCharTbl.put("4", "4");
        hmCharTbl.put("5", "5");
        hmCharTbl.put("6", "6");
        hmCharTbl.put("7", "7");
        hmCharTbl.put("8", "8");
        hmCharTbl.put("9", "9");
        hmCharTbl.put("a", "a");
        hmCharTbl.put("b", "b");
        hmCharTbl.put("c", "c");
        hmCharTbl.put("d", "d");
        hmCharTbl.put("e", "e");
        hmCharTbl.put("f", "f");
        hmCharTbl.put("g", "g");
        hmCharTbl.put("h", "h");
        hmCharTbl.put("i", "i");
        hmCharTbl.put("j", "j");
        hmCharTbl.put("k", "k");
        hmCharTbl.put("l", "l");
        hmCharTbl.put("m", "m");
        hmCharTbl.put("n", "n");
        hmCharTbl.put("o", "o");
        hmCharTbl.put("p", "p");
        hmCharTbl.put("q", "q");
        hmCharTbl.put("r", "r");
        hmCharTbl.put("s", "s");
        hmCharTbl.put("t", "t");
        hmCharTbl.put("u", "u");
        hmCharTbl.put("v", "v");
        hmCharTbl.put("w", "w");
        hmCharTbl.put("x", "x");
        hmCharTbl.put("y", "y");
        hmCharTbl.put("z", "z");
        hmCharTbl.put("A", "A");
        hmCharTbl.put("B", "B");
        hmCharTbl.put("C", "C");
        hmCharTbl.put("D", "D");
        hmCharTbl.put("E", "E");
        hmCharTbl.put("F", "F");
        hmCharTbl.put("G", "G");
        hmCharTbl.put("H", "H");
        hmCharTbl.put("I", "I");
        hmCharTbl.put("J", "J");
        hmCharTbl.put("K", "K");
        hmCharTbl.put("L", "L");
        hmCharTbl.put("M", "M");
        hmCharTbl.put("N", "N");
        hmCharTbl.put("O", "O");
        hmCharTbl.put("P", "P");
        hmCharTbl.put("Q", "Q");
        hmCharTbl.put("R", "R");
        hmCharTbl.put("S", "S");
        hmCharTbl.put("T", "T");
        hmCharTbl.put("U", "U");
        hmCharTbl.put("V", "V");
        hmCharTbl.put("W", "W");
        hmCharTbl.put("X", "X");
        hmCharTbl.put("Y", "Y");
        hmCharTbl.put("Z", "Z");
        hmCharTbl.put("ア", "ア");
        hmCharTbl.put("イ", "イ");
        hmCharTbl.put("ウ", "ウ");
        hmCharTbl.put("エ", "エ");
        hmCharTbl.put("オ", "オ");
        hmCharTbl.put("カ", "カ");
        hmCharTbl.put("キ", "キ");
        hmCharTbl.put("ク", "ク");
        hmCharTbl.put("ケ", "ケ");
        hmCharTbl.put("コ", "コ");
        hmCharTbl.put("サ", "サ");
        hmCharTbl.put("シ", "シ");
        hmCharTbl.put("ス", "ス");
        hmCharTbl.put("セ", "セ");
        hmCharTbl.put("ソ", "ソ");
        hmCharTbl.put("タ", "タ");
        hmCharTbl.put("チ", "チ");
        hmCharTbl.put("ツ", "ツ");
        hmCharTbl.put("テ", "テ");
        hmCharTbl.put("ト", "ト");
        hmCharTbl.put("ナ", "ナ");
        hmCharTbl.put("ニ", "ニ");
        hmCharTbl.put("ヌ", "ヌ");
        hmCharTbl.put("ネ", "ネ");
        hmCharTbl.put("ノ", "ノ");
        hmCharTbl.put("ハ", "ハ");
        hmCharTbl.put("ヒ", "ヒ");
        hmCharTbl.put("フ", "フ");
        hmCharTbl.put("ヘ", "ヘ");
        hmCharTbl.put("ホ", "ホ");
        hmCharTbl.put("マ", "マ");
        hmCharTbl.put("ミ", "ミ");
        hmCharTbl.put("ム", "ム");
        hmCharTbl.put("メ", "メ");
        hmCharTbl.put("モ", "モ");
        hmCharTbl.put("ヤ", "ヤ");
        hmCharTbl.put("ユ", "ユ");
        hmCharTbl.put("ヨ", "ヨ");
        hmCharTbl.put("ラ", "ラ");
        hmCharTbl.put("リ", "リ");
        hmCharTbl.put("ル", "ル");
        hmCharTbl.put("レ", "レ");
        hmCharTbl.put("ロ", "ロ");
        hmCharTbl.put("ワ", "ワ");
        hmCharTbl.put("ヲ", "ヲ");
        hmCharTbl.put("ン", "ン");
        hmCharTbl.put("ァ", "ァ");
        hmCharTbl.put("ィ", "ィ");
        hmCharTbl.put("ゥ", "ゥ");
        hmCharTbl.put("ェ", "ェ");
        hmCharTbl.put("ォ", "ォ");
        hmCharTbl.put("ッ", "ッ");
        hmCharTbl.put("ャ", "ャ");
        hmCharTbl.put("ュ", "ュ");
        hmCharTbl.put("ョ", "ョ");
        hmCharTbl.put("ー", "ー");
        hmCharTbl.put("。", "。");
        hmCharTbl.put("、", "、");
        hmCharTbl.put("・", "・");
        hmCharTbl.put("「", "「");
        hmCharTbl.put("」", "」");
        hmCharTbl.put("゙", "゛");
        hmCharTbl.put("゚", "゜");
        hmCharTbl.put("ヴ", "ヴ");
        hmCharTbl.put("ガ", "ガ");
        hmCharTbl.put("ギ", "ギ");
        hmCharTbl.put("グ", "グ");
        hmCharTbl.put("ゲ", "ゲ");
        hmCharTbl.put("ゴ", "ゴ");
        hmCharTbl.put("ザ", "ザ");
        hmCharTbl.put("ジ", "ジ");
        hmCharTbl.put("ズ", "ズ");
        hmCharTbl.put("ゼ", "ゼ");
        hmCharTbl.put("ゾ", "ゾ");
        hmCharTbl.put("ダ", "ダ");
        hmCharTbl.put("ヂ", "ヂ");
        hmCharTbl.put("ヅ", "ヅ");
        hmCharTbl.put("デ", "デ");
        hmCharTbl.put("ド", "ド");
        hmCharTbl.put("バ", "バ");
        hmCharTbl.put("ビ", "ビ");
        hmCharTbl.put("ブ", "ブ");
        hmCharTbl.put("ベ", "ベ");
        hmCharTbl.put("ボ", "ボ");
        hmCharTbl.put("パ", "パ");
        hmCharTbl.put("ピ", "ピ");
        hmCharTbl.put("プ", "プ");
        hmCharTbl.put("ペ", "ペ");
        hmCharTbl.put("ポ", "ポ");

        StringBuffer sbBuf = new StringBuffer();

        String  strKey = new String();  // HashMapのKEY
        String  strChar1 = "";          // 1文字目
        char    c1 = ' ';               // 1文字目
        char    c2 = ' ';               // 2文字目
        int     i;
        for (i=0; i<s.length(); i++) {

            c1 = ' ';
            c2 = ' ';
            c1 = s.charAt(i);
            if ((i+1) < s.length()) {
                c2 = s.charAt(i+1);
            }

            strChar1 = "";
            if (c2 == '゙' || c2 == '゚') {
                strKey = String.valueOf(c1) + String.valueOf(c2);
                strChar1 = (String)hmCharTbl.get(strKey);
                if (strChar1 == null) {
                    strKey = String.valueOf(c1);
                    strChar1 = (String)hmCharTbl.get(strKey);
                    if (strChar1 == null) {
                        sbBuf.append(c1);
                    } else {
                        sbBuf.append(strChar1);
                    }
                } else {
                    sbBuf.append(strChar1);
                    i++;
                }
            } else {
                strKey = String.valueOf(c1);
                strChar1 = (String)hmCharTbl.get(strKey);
                if (strChar1 == null) {
                    sbBuf.append(c1);
                } else {
                    sbBuf.append(strChar1);
                }
            }
        }
        return sbBuf.toString();
    }
}