Javaで半角英字を全角英字へ変換するサンプルプログラムをご紹介します。
英数字に関しては、全角/半角で文字コード順が一致してので文字コードの加減算で変換が可能となります。
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/** * <p>[概 要] 半角英字⇒全角英字への変換</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param str 変換対象文字列 * @return 変換後文字列 */ public static String changeAlpHalfToFull(String str) { String result = null; if(str != null) { StringBuilder sb = new StringBuilder(str); for (int i = 0; i < sb.length(); i++) { int c = (int) sb.charAt(i); if ((c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A)) { sb.setCharAt(i, (char) (c + 0xFEE0)); } } result = sb.toString(); } return result; } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
@Test public void changeAlpHalfToFullTest() { // 期待値 String expected1 = "1234567890"; String expected2 = "abcdeABCDE"; String expected3 = null; // 準備 String param1 = "1234567890"; String param2 = "abcdeABCDE"; // 実行 String result1 = UtilSample1.changeAlpHalfToFull(param1); String result2 = UtilSample1.changeAlpHalfToFull(param2); String result3 = UtilSample1.changeAlpHalfToFull(null); // 検証 assertEquals("文字列1が一致していません。", expected1, result1); assertEquals("文字列2が一致していません。", expected2, result2); assertEquals("文字列3が一致していません。", expected3, result3); } |