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 changeNumFullToHalf(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 >= 0xFF10 && c <= 0xFF19) { 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 |
@Test public void changeNumHalfToFullTest() { // 期待値 String expected1 = "1234567890"; String expected2 = "abcde"; String expected3 = null; // 準備 String param1 = "1234567890"; String param2 = "abcde"; // 実行 String result1 = UtilSample1.changeNumFullToHalf(param1); String result2 = UtilSample1.changeNumFullToHalf(param2); String result3 = UtilSample1.changeNumFullToHalf(null); // 検証 assertEquals("文字列1が一致していません。", expected1, result1); assertEquals("文字列2が一致していません。", expected2, result2); assertEquals("文字列3が一致していません。", expected3, result3); } |