• ベストアンサー

数字の判定

初めまして、ver_51 と言います。今、文字列に入っている中身が数字でなければエラーを出すプログラムを作りたいと考えています。 例えば String a; があるとすると、a が "123" であればエラーを出さないが、"abc" や "あいうえお" や "123"(全角) であればエラーを出すといった感じです。 下記の if 文の条件をどのようにしたらよいでしょうか。 if(a.equals(ここの条件)) System.out.println("エラー"); JavaScript のテキストから入力された場合だと以下のような感じになると思うのですが、Java の文字列でこの様なことを実現するのは無理でしょうか? <SCRIPT LANGUAGE="JavaScript"> function check(){ var a=document.~.value; if(a.search(/[^0-9]/)>=0){ alert("エラー"); return false; } } </SCRIPT> 初歩的な質問だと思いますが、すごく困っています。 回答していただけたらすごく助かります。宜しくお願いします。

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

  • ベストアンサー
  • isi0611
  • ベストアンサー率34% (46/134)
回答No.1

こんばんは~(^^♪ javaではチェックしてくれるメソッドはないと思うので自分で作るしかないかもしれないですね。 import java.io.*; public class Check { public static void main(String[] args){ boolean flg = false; String a = "123"; byte[] bytes = a.getBytes(); // 123の場合もあるので半角チェック if( a.length() == bytes.length ) { try{ // 数字に変換できるか? Long.parseLong(a); flg = true; }catch(Exception e){ } } if (!flg) { System.out.println("エラー"); } } } こんな感じでどうでしょう? もっといいやり方があるのかも知れませんが。。。 では~(^o^)丿

ver_51
質問者

お礼

isi0611様、さっそく回答していただき、ありがとうございます。 やはりこの様なメソッドはないのですか・・・残念です。 今回自分のプログラムにisi0611様からいただいたアドバイスを活かすことができ、やろうとしていたことが実現しました! 本当にありがとうございます、助かりました。またご縁があれば宜しくお願いします。

その他の回答 (1)

回答No.2

正規表現を使ってチェックするには、という質問だと理解しました。こんな感じで。 public class test { /** * @param args */ public static void main(String[] args) { check("123"); check("123.1"); check("11h55"); check(""); check("k"); check("3"); check("0"); } static void check(String a) { if (a.matches("[0-9]+")) { System.out.println("OK"); } else { System.out.println("NG"); } } }

ver_51
質問者

お礼

arakororin様、迅速な回答ありがとうございます。 正規表現を使ってもできるんですね、すごく参考になりました。プログラムはisi0611様から先に回答があったので、そちらを使わせていただきました。 しかし正規表現もすごくイイ勉強になりました、感謝しております。本当にありがとうございました。またご縁があれば宜しくお願いします。

関連するQ&A