有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检查字符串中的符号

我有一个由用户输入的字符串,它应该表示IP地址,如:123.234.12.8 但作为一个愚蠢的人,如果他们加入进来,有时会怎么样:12#.234。1@.8

我已经了解了如何通过循环字符串并使用以下命令生成临时字符/整数来检查字符和符号:

tempChar = ipString.charAt(i);
tempInt = Character.getNumericValue(tempChar);

我可以标记“a”或“q”,但我无法区分“.”符号和其他符号,如“#”或“&;”因为它们都被赋予了int值-1

是否存在防止用户输入除“.”以外的任何符号的现有方法如果我做错了,有人能给我指出正确的方向吗

编辑:这是用Java编写的


共 (3) 个答案

  1. # 1 楼答案

    使用正则表达式。在这种情况下,您需要(大致):

    Pattern pattern = new Pattern.compile("(\\d{1,3}\\.){4}");
    

    然后可以按如下方式使用:

    boolean isMatch = pattern.matcher(ipString).matches;
    

    这在验证IP地址方面不是非常精确,更好的答案是here。但它确实以书面形式回答了你的问题:除了“.”之外,它不包括符号分隔数字

  2. # 3 楼答案

    你应该使用正则表达式

        String ipString = "123.234.12@8";
        System.out.println(ipString.matches("^\\d+(\\.\\d+){3}$"));
    

    matches仅当用户输入一系列数字和点时才会返回true

    public boolean matches(String regex) : Tells whether or not this string matches the given regular expression.