Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查字符串中的符号_Java_Error Handling_Character - Fatal编程技术网

Java 检查字符串中的符号

Java 检查字符串中的符号,java,error-handling,character,Java,Error Handling,Character,我有一个由用户输入的字符串,它应该表示IP地址,如:123.234.12.8 但是,作为一个愚蠢的人,如果他们加入进来,有时会怎么样:12.234。1@.8 我已经了解了如何通过循环字符串并使用以下命令生成临时字符/整数来检查字符和符号: tempChar = ipString.charAt(i); tempInt = Character.getNumericValue(tempChar); 我可以标记“a”或“q”,但我无法区分“.”符号和其他符号,如或“&”,因为它们都被赋予int值-1

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

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

tempChar = ipString.charAt(i);
tempInt = Character.getNumericValue(tempChar);
我可以标记“a”或“q”,但我无法区分“.”符号和其他符号,如或“&”,因为它们都被赋予int值-1

有没有一种现有的方法可以防止用户输入除“.”以外的任何符号,或者如果我做得不对,有人能给我指出正确的方向吗


编辑:这是Java语言。

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

Pattern pattern = new Pattern.compile("(\\d{1,3}\\.){4}");
然后,您可以按如下方式使用:

boolean isMatch = pattern.matcher(ipString).matches;
就验证IP地址而言,这并不是非常精确——更好的答案是。但它确实以书面形式回答了你的问题:它排除了符号,除了符号。分隔数字。

您应该使用正则表达式

    String ipString = "123.234.12@8";
    System.out.println(ipString.matches("^\\d+(\\.\\d+){3}$"));
仅当用户输入一系列数字和点时,才会返回true

公共布尔匹配字符串正则表达式: 说明此字符串是否与给定的正则表达式匹配


我相信这就是你想要的:


你能用一个正则表达式吗?你只是想验证这个数据,还是删除坏字符?不管怎样,正如@MadProgrammer所说,正则表达式在这里都是很好的选择。请澄清您的问题以获得更好的答案。对于或这可能是有用的,我正在尝试验证它,如果IP中有无效字符,我想请用户输入一个新字符。我不熟悉正则表达式,现在正在阅读oracle教程。