問題の説明
文字列が有効なIPv4アドレスであるかどうかを確認します
ipv4アドレスの機能
たとえば、123.1.33.2に
は4桁があり、各桁は直接除算されます。各桁の範囲は0〜255、つまり0.0.0.0〜255.255.255.255です。
(方法1)
現在の文字列を文字の配列に分割し(区切り文字に注意してください。エスケープして\\として記述する必要があります)、各ビットの範囲が0〜255の間にあるかどうかを判断します。 0〜255、現在の文字が0で終わり、最初の桁ではないかどうかを判断します(たとえば、01.11.11.11は有効なipv4アドレスではありません)
boolean checkIp(String ip) throws Exception{
String arrs[]=ip.split("\\.");//.转义
if (arrs.length!=4) {
return false;
}
for(int i=0;i<arrs.length;i++) {
Integer num=null;
try {
num=Integer.parseInt(arrs[i]);
if (num<0||num>255) {
return false;
}
if (!num.equals("0")&&arrs[i].startsWith("0")) {
//避免01出现
return false;
}
} catch (NumberFormatException e) {
// TODO: handle exception
return false;
}
}
return true;
}
(方法2)正規表現を使用する
boolean checkIp2(String ip) throws Exception{
String arrs[]=ip.split("\\.");//.转义
if (arrs.length!=4) {
return false;
}
String reg="\\d||[1,9]\\d{1,2}";
for(String arr:arrs) {
try {
if (!arr.matches(reg)||Integer.parseInt(arr)>255) {
return false;
}
} catch (NumberFormatException e) {
// TODO: handle exception
}
}
return true;
}