如果任何参数为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???
}
答案 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")