Salem,
j'ai une chaine de caractére de la forme suivante"a.b.c.d"
je veux faire un test sur ces valeurs.Il faut que tous soit des entiers.
j'utilise Tokenizer pour prendre chaque partie à part(a puis b puis ...) avec le délimiteur point.
mais mon probléme est que lorsque j'utilise.intValue pour la conversion il me retourne un entier donc je sais si a est un entier ou caractére.
comment puis je faire ce test.
public static void main(String[] args) {
String ip = "192.168.1.2";
System.out.println(isIPOK(ip));
}
public static boolean isIPOK(String ip) {
ip = ip.replace(".", "/");
String[] bytes = ip.split("/");
if (bytes.length != 4)
return false;
for (String b : bytes) {
try {
int i = Integer.parseInt(b);
if (i < 0 || i > 255)
return false;
} catch (NumberFormatException e) {
return false;
}
}
return true;
}
}
A noter que si je ne remplace pas les points par un autre caractère dans l'ip, ça ne marche pas car dans une expression régulière, le point vaut n'importe quel caractère.
Salem,
je ne comprends pas ces lignes:
private static final Pattern IP_PATTERN =
Pattern.compile("^((25[0-5]|2[0-4]\\d|1?\\d?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1?\\d?\\d)$");
ma chaine dont je veux faire le test est exactement la suivante adr_IP/netmask
comment je peux exploiter ce que vous me dire.
mouna