個人的神殿

プログラミング

アルファベットの変換

こちらのサイトのページを自分用に書き写したものです。
http://www7a.biglobe.ne.jp/~java-master/samples/string/index.html



全角アルファベットを半角アルファベットに変換する

public class ZenkakuAlphabetToHankaku {
    public static String zenkakuAlphabetToHankaku(String str) {
        StringBuffer sb = new StringBuffer(str);
	    for (int i = 0; i < sb.length(); i++) {
	        char c = sb.charAt(i);

		if (c >= 'a' && c <= 'z') {
	            sb.setCharAt(i, (char)(c - 'a' + 'a'));
		} else if (c >= 'A' && c <= 'Z') {
		    sb.setCharAt(i,  (char)(c - 'A' + 'A'));
		}
	    }

        return sb.toString();
    }

    public static void main(String[] args) {
        System.out.println(zenkakuAlphabetToHankaku("☆Javaプログラミング"));
    }
}

①引数にとったString型の変数strにより、StringBufferクラスのインスタンスを生成する。

②左から1文字ずつchar型の変数cに代入していく。

③char型には文字コードが格納されているので大小の比較が可能。変数cの文字コードが全角の'a'から'z'の間にあるか、もしくは全角の'A'から'Z'の間にある場合はそれを半角の文字コードに直したい。そこでcの文字コードからまず全角の’a’または'A'の文字コードを引いたあとに、半角の'a'または'A'の文字コードを足せば、cの文字コードを半角に直したものを得られる。それをint型からchar型に直し、setCharAtメソッドで書き換える。

④最後にtoStringメソッドでString型に直して返す。