[Java] 全角のみか、半角のみかを判断する
指定した文字列が全角文字のみか、もしくは半角文字のみになっているかを判断するメソッドを作りました。
なんだか、この前公開した投稿にとても似てますが。。。
正直、需要はあまりないかと思いますが自分用の記録です。
ご参考までに。。
import java.util.regex.Pattern; import static org.junit.Assert.*; import org.junit.Test; /** * * @author propg * */ public class RegTest { @Test /** * 半角文字のみかテスト */ public void testHankaku() throws Exception { assertTrue(isHankakuOnly("abc123アイウ#!")); assertTrue(isHankakuOnly("アイウ")); assertFalse(isHankakuOnly("アイ")); assertFalse(isHankakuOnly("あaい")); assertFalse(isHankakuOnly(" ")); assertTrue(isHankakuOnly("+-*/")); assertTrue(isHankakuOnly("abc")); assertTrue(isHankakuOnly("abc123アイウ#!")); assertTrue(isHankakuOnly(" ")); assertTrue(isHankakuOnly("")); assertTrue(isHankakuOnly("XYZ")); assertFalse(isHankakuOnly("山田太郎")); assertTrue(isHankakuOnly(null)); } @Test /** * 全角文字のみかテスト */ public void testZenkaku() throws Exception { assertFalse(isZenkakuOnly("abc123アイウ#!")); assertFalse(isZenkakuOnly("アイウ")); assertTrue(isZenkakuOnly("アイ")); assertFalse(isZenkakuOnly("あaい")); assertTrue(isZenkakuOnly(" ")); assertFalse(isZenkakuOnly("+-*/")); assertFalse(isZenkakuOnly("abc")); assertFalse(isZenkakuOnly("abc123アイウ#!")); assertFalse(isZenkakuOnly(" ")); assertTrue(isZenkakuOnly("")); assertFalse(isZenkakuOnly("XYZ")); assertTrue(isZenkakuOnly("山田太郎")); assertTrue(isZenkakuOnly("全角文字の場合はTRUE")); assertTrue(isZenkakuOnly(null)); } /** * 指定した文字列が半角文字のみか判断する * * @param source 対象文字列 * @return trueなら半角文字のみ 空の場合は常にtrueとなる */ public boolean isHankakuOnly(String source) { if (source == null || source.equals("")) { return true; } String regText = "[ -~。-゚]+"; Pattern pattern = Pattern.compile(regText); return pattern.matcher(source).matches(); } /** * 指定した文字列が全角文字のみか判断する * * @param source 対象文字列 * @return trueなら全角文字のみ 空の場合は常にtrueとなる */ public boolean isZenkakuOnly(String source) { if (source == null || source.equals("")) { return true; } String regText = "[^ -~。-゚]+"; Pattern pattern = Pattern.compile(regText); return pattern.matcher(source).matches(); } }
== ランキングに参加しています。ぜひクリックお願いします ==
[IT] Flash Player 11.2とAdobe AIR 3.2が正式リリースされました ”~”文字は2種類ある