java检查字符串中的符号
我有一个由用户输入的字符串,它应该表示IP地址,如:123.234.12.8 但作为一个愚蠢的人,如果他们加入进来,有时会怎么样:12#.234。1@.8
我已经了解了如何通过循环字符串并使用以下命令生成临时字符/整数来检查字符和符号:
tempChar = ipString.charAt(i);
tempInt = Character.getNumericValue(tempChar);
我可以标记“a”或“q”,但我无法区分“.”符号和其他符号,如“#”或“&;”因为它们都被赋予了int值-1
是否存在防止用户输入除“.”以外的任何符号的现有方法如果我做错了,有人能给我指出正确的方向吗
编辑:这是用Java编写的
# 1 楼答案
使用正则表达式。在这种情况下,您需要(大致):
然后可以按如下方式使用:
这在验证IP地址方面不是非常精确,更好的答案是here。但它确实以书面形式回答了你的问题:除了“.”之外,它不包括符号分隔数字
# 2 楼答案
我相信这就是你想要的:
using the JDK pattern matching
using the JDK InetAddress
using Apache Commons Validator
# 3 楼答案
你应该使用正则表达式
matches仅当用户输入一系列数字和点时才会返回true