我有一个用户输入的字符串,应该代表一个IP地址,如:123.234.12.8 但是他们是一个愚蠢的人,因为如果他们进入他们有时可能是这样:12#.234.1 @ .8
我已经弄清楚如何通过循环字符串并使用以下方法制作临时字符/整数来检查字符和符号:
tempChar = ipString.charAt(i);
tempInt = Character.getNumericValue(tempChar);
我可以标记一个' a'或者是' q'但我无法区分'。'符号和其他如'#'或者'&'因为他们都给了int值-1。
是否存在阻止用户输入任何符号的现有方法,除了'。'或者如果我出错了,有人会指出我正确的方向吗?
编辑:这是Java。
答案 0 :(得分:0)
使用正则表达式。在这种情况下,您需要(大致):
Pattern pattern = new Pattern.compile("(\\d{1,3}\\.){4}");
然后您可以按如下方式使用:
boolean isMatch = pattern.matcher(ipString).matches;
在验证IP地址方面,这并不是非常精确 - 更好的答案是here。但它确实以书面形式回答了你的问题:除了"它之外不包括符号。"分开数字。
答案 1 :(得分:0)
你应该使用正则表达式。
String ipString = "123.234.12@8";
System.out.println(ipString.matches("^\\d+(\\.\\d+){3}$"));
仅当用户输入一系列数字和点时,matches才会返回true。
公共布尔匹配(String regex): 判断此字符串是否与给定的正则表达式匹配。
答案 2 :(得分:0)