Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

入力文字列が数字かどうかの判別

キーボードから入力した文字列が数字かどうかを判別したいのです。 入力した文字列が数字ではない間、またその逆の文字列が数字の間ループさせたいのです。 ループさせないやり方(Integer.parseInt(String)で数字でなければcatchで処理する)はわかるのですが・・・ import java.io.*; class Test{ public static void main(String[] args){ String str = ""; BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); try{ do { str = br.readLine(); System.out.print("\n"); }while(strが数字の間、もしくは数字以外の間) } catch(Exception e){ System.err.println(e); } } } 上のプログラムのwhileの中で判別したいのです。 よろしくお願いします。

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

  • ベストアンサー
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

str.matches("-?\d+"); とか?

coco_75
質問者

お礼

str.matches("-?\\d+"); でやるとうまくいきましたありがとうございます。

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

その他の回答 (1)

回答No.1

import java.io.*; //たとえば… class Test{ public static void main(String[] args){ String str = ""; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try{ boolean isNumeric = false; do { str = br.readLine(); try{ isNumeric = true; Integer.parseInt(str); }catch(NumberFormatException e){ isNumeric = false; } }while(isNumeric == false); }catch(Exception e){ System.err.println(e); } } }

coco_75
質問者

お礼

あっそういうやり方もあるんですね・・・ 参考になりました。ありがとうございました。

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

関連するQ&A