チュートリアル
値が全角文字だけの構成であるかどうかを確認するための方法について説明します。
文字コード(Shift_JIS、UTF-8)を指定した場合のサンプルをご紹介します。
メソッド概要
引数で渡された値の属性チェック(全角文字)を行う。
引数の文字列がすべて全角文字である場合はtrue/左記以外はfalseを返却します。
※文字コード(Shift_JIS、UTF-8)に対応
※nullはfalseとして返却します。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package sample.code; import java.io.UnsupportedEncodingException; public class StringCheker05 { // 文字コード public static final String CHAR_SJIS = "Shift_JIS"; // 文字コードUTF-8 public static final String CHAR_UTF8 = "UTF-8"; // 半角カタカナ private static final String HALF_KANA = ".*[\\uFF61-\\uFF9F]+.*"; /** * 全角文字チェック * * 全て全角文字であるかどうかをチェックする * * ※注意 * "UTF-8"の場合:param.length() * 3 * "Shift_JIS"の場合:param.length() * 2 * * @param str チェック対象の文字列 * @param charCode 文字コード * @return true:全て全角文字 false:半角が含まれている * @throws UnsupportedEncodingException */ public static boolean isFullChar(String str, String charCode) { try { if (str == null || "".equals(str)) { return false; } else if (CHAR_SJIS.equals(charCode)) { return (str.getBytes(CHAR_SJIS).length == str.length() * 2); } else if (CHAR_UTF8.equals(charCode) && !str.matches(HALF_KANA)) { // UTF-8の半角カタカナは3バイトで扱われるため、含んでいない場合のみ計算 return (str.getBytes(CHAR_UTF8).length == str.length() * 3); } else { return false; } } catch (UnsupportedEncodingException e) { return false; } } } |
テストコード(JUnit)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
package sample.test; import static org.junit.jupiter.api.Assertions.*; import java.io.UnsupportedEncodingException; import org.junit.jupiter.api.Test; import sample.code.StringCheker05; class StringCheckerTest05 { @Test void test01() { assertFalse(StringCheker05.isFullChar(null, StringCheker05.CHAR_SJIS)); } @Test void test02() { assertFalse(StringCheker05.isFullChar("", StringCheker05.CHAR_SJIS)); } @Test void test03() { assertFalse(StringCheker05.isFullChar("123", StringCheker05.CHAR_SJIS)); } @Test void test04() { assertFalse(StringCheker05.isFullChar("abc", StringCheker05.CHAR_SJIS)); } @Test void test05() { assertFalse(StringCheker05.isFullChar("123", StringCheker05.CHAR_SJIS)); } @Test void test06() { assertFalse(StringCheker05.isFullChar("Abc", StringCheker05.CHAR_SJIS)); } @Test void test07() { assertTrue(StringCheker05.isFullChar("あいう", StringCheker05.CHAR_SJIS)); } @Test void test08() { assertTrue(StringCheker05.isFullChar("アイウ", StringCheker05.CHAR_SJIS)); } @Test void test09() { assertFalse(StringCheker05.isFullChar("アイウ", StringCheker05.CHAR_SJIS)); } @Test void test10() { assertTrue(StringCheker05.isFullChar("漢字", StringCheker05.CHAR_SJIS)); } @Test void test11() { assertFalse(StringCheker05.isFullChar("明日ハ", StringCheker05.CHAR_SJIS)); } @Test void test12() { assertFalse(StringCheker05.isFullChar(null, StringCheker05.CHAR_UTF8)); } @Test void test13() { assertFalse(StringCheker05.isFullChar("", StringCheker05.CHAR_UTF8)); } @Test void test14() { try { assertFalse(StringCheker05.isFullChar(new String("123".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test15() { try { assertFalse(StringCheker05.isFullChar(new String("abc".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test16() { try { assertFalse(StringCheker05.isFullChar(new String("123".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test17() { try { assertFalse(StringCheker05.isFullChar(new String("Abc".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test18() { try { assertTrue(StringCheker05.isFullChar(new String("あいう".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test19() { try { assertTrue(StringCheker05.isFullChar(new String("アイウ".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test20() { try { assertFalse(StringCheker05.isFullChar(new String("アイウ".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test21() { try { assertTrue(StringCheker05.isFullChar(new String("漢字".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Test void test22() { try { assertFalse(StringCheker05.isFullChar(new String("明日ハ".getBytes("UTF-8"), "UTF-8"), StringCheker05.CHAR_UTF8)); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } |