• ベストアンサー

入力された文字がIPアドレスかのチェック

コンソール画面から入力をする方法を調べた所、以下のようにすればよいことが解かりました。 BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String a = input.readLine(); IPアドレスを入力したいので、IPアドレス以外の形式で入力された場合に エラーを表示して再入力をさせるようにしたいです。 入力された文字列がIPアドレスかどうかのチェックをどのようにすればよいでしょうか?

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

  • ベストアンサー
回答No.3

小数点で分割したい場合には String[] b = a.split("\\."); としてください。

debukawa
質問者

お礼

皆様回答ありがとうございます. 皆様のアドバイスのおかげで問題を解決することが 出来ました. ありがとうございました.

その他の回答 (2)

回答No.2

InetAddress.getByName(a); を実行したときに例外が投げられるかどうかをチェックするのがお手軽だと思います。

参考URL:
http://java.sun.com/javase/ja/6/docs/ja/api/java/net/InetAddress.html#getByName%28java.lang.String%29
  • kyonn2008
  • ベストアンサー率22% (4/18)
回答No.1

1.splitメソッドを使用し、"."で分ける。 2.分けた配列の長さが4以外であればエラー 3.分けた配列のそれぞれの要素が数値変換できなければエラー 4.分けた配列のそれぞれの要素が0~255の範囲内になければエラー ※ただしIPv4に限る。 を順にやれ。

debukawa
質問者

お礼

回答ありがとうございます。 splitメソッドを使って試してみました。 String[] b = a.split("."); というようにして分割させようとしてみましたが,うまく分割しません。 String[] b = a.split(":"); としたところうまく分割してくれました。 .で分割させたいのですがなぜか上手くいきません。 原因が分からないのですがご存知でしょうか?

関連するQ&A

専門家に質問してみよう