带邮政编码的地址。 Java的

时间:2015-11-05 21:14:52

标签: java

如果任何参数为null,或者如果邮政编码包含除数字以外的字符,构造函数将抛出IllegalArgumentException异常并显示消息“Invalid Address Argument”。

方法Character.isDigit可以在实现此方法时提供帮助。有关其他信息,请参阅Java API(Character类)。

我的非法参数异常下降了。但是,不是邮政编码。帮助

方案。

    if(street==null||city==null||state==null){
        throw new IllegalArgumentException("Invalid Address Argument");
    }

    if(zip == Character.isDigit(ch)){
     //To do??? 

    }

3 个答案:

答案 0 :(得分:0)

尝试apache stringutils

public static boolean isNumeric(CharSequence cs)
Checks if the CharSequence contains only Unicode digits. A decimal point is not a Unicode digit and returns false.

null will return false. An empty CharSequence (length()=0) will return false.

 StringUtils.isNumeric(null)   = false
 StringUtils.isNumeric("")     = false
 StringUtils.isNumeric("  ")   = false
 StringUtils.isNumeric("123")  = true
 StringUtils.isNumeric("12 3") = false
 StringUtils.isNumeric("ab2c") = false
 StringUtils.isNumeric("12-3") = false
 StringUtils.isNumeric("12.3") = false

Parameters:
cs - the CharSequence to check, may be null
Returns:
true if only contains digits, and is non-null
Since:
3.0 Changed signature from isNumeric(String) to isNumeric(CharSequence), 3.0 Changed "" to return false and not true

答案 1 :(得分:0)

int zipcode = 0;
try {
     zipcode = Integer.parseInt(zipcode);
}catch (Exception e){}
if (zipcode <= 0)
{
     throw new Exception(..);
}

如果你想要精确的话,不到1,000,000。您正在使用Char,因为您将拥有一个String。

答案 2 :(得分:0)

这听起来像是家庭作业,所以我认为你需要做的第一件事就是学习如何阅读文档。让我们从教师的提示开始,查找Character.isDigit(char ch)

的文档
public static boolean isDigit(char ch)

在那里撇开一些术语,关键的是方法是static(这意味着我们称之为Character.isDigit(myVariable)并且它返回boolean(真或假) value),并且它接受char类型的参数。

因此,要调用此方法,我们需要char(单个字符)。我假设您的zip变量是String。我们知道字符串由多个字符组成。所以我们需要的是一种从String一次一个地获取这些角色的方法。您可以找到String课程here.

的文档

有几种方法可以解决这个问题。我们可以使用toCharArray()获取数组中的字符,或者使用charAt(int index)

从字符串中获取特定字符

但是你要解决它,你需要这样做(在伪代码中)

for each char ch in zip
    if ch is not a digit
        throw new IllegalArgumentException("Invalid Address Argument")