检查String的符号

时间:2014-08-26 04:25:11

标签: 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。

是否存在阻止用户输入任何符号的现有方法,除了'。'或者如果我出错了,有人会指出我正确的方向吗?

编辑:这是Java。

3 个答案:

答案 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)