電子書籍の厳選無料作品が豊富!

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;
}
}

どのように記述すればよろしいのでしょうか?

A 回答 (3件)

正常に動作します。


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);

}
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/12/15 08:57

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))){
の方が良いのかも知れません
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/12/15 09:00

こんばんは~(^^♪



rabu_chihahaさんの記述してあるソースを
動作させてみたところ問題ないと思いますが
どうでしょうか??
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/12/15 08:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!