• ベストアンサー

半角英数字を判断したい

JAVA初心者です。 strIdに文字列が入っています。 このstrIdの文字列が半角英数字のみか判断したいのです。 ホームページを参考にし以下のように記述し、chkがtrueかfalseで判断しようかと思ったのですがだめでした。 boolean chk = true; for (int i=0; i<strId.length(); i++) { if (!(strId.charAt(i) > 0x0020 && strId.charAt(i) < 0x007F)) { chk = false; break; } } どのように記述すればよろしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

正常に動作します。 Public class hankaku { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ String strId="abcdefghijKlmn"; boolean chk = true; for (int i=0; i<strId.length(); i++) { if (!(strId.charAt(i) > 0x0020 && strId.charAt(i) < 0x007F)) { chk = false; break; } } System.out.println(chk); } }

rabu_chihaha
質問者

お礼

ありがとうございます。 正常に動作しますか。 もう一度がんばってみます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

class Sample{ public static boolean isAlnum(String s){ boolean chk = true; for(int i=0; i<s.length(); i++) { char c = s.charAt(i); if(!Character.isLetterOrDigit(c)){ chk = false; break; } } return chk; } public static void main(String args[]){ String s1 = "aiueo123"; String s2 = "aiueo@sample.ne.jp"; String s3 = "aiueo_123"; String s4 = "aiueo 123"; System.out.println("\""+s1 + "\" is " +isAlnum(s1)); System.out.println("\""+s2 + "\" is " +isAlnum(s2)); System.out.println("\""+s3 + "\" is " +isAlnum(s3)); System.out.println("\""+s4 + "\" is " +isAlnum(s4)); } } みたいな感じですか? if(!Character.isLetterOrDigit(c)){ は、 if(!(Character.isUpperCase(c) || Character.isLowerCase(c) ||Character.isDigit(c))){ の方が良いのかも知れません

rabu_chihaha
質問者

お礼

ありがとうございます。 試してみます。

すると、全ての回答が全文表示されます。
  • isi0611
  • ベストアンサー率34% (46/134)
回答No.2

こんばんは~(^^♪ rabu_chihahaさんの記述してあるソースを 動作させてみたところ問題ないと思いますが どうでしょうか??

rabu_chihaha
質問者

お礼

ありがとうございます。 もう一度確認してみます。

すると、全ての回答が全文表示されます。

関連するQ&A