数组如何解析通过在Java中将字符串拆分为Int值而获得的数据?
我拆分了一个字符串,它是用户输入的密码,只返回数字。我需要确保他们输入的数字不是特定的数字。但首先,我需要将返回的数据转换成整数,以便进行比较
public static boolean checkPassword(String password){
String digitsRegrex = "[a-zA-Z]+";
int upPass;
String [] splitPass = password.split("[a-zA-Z]+");
for(String pass : splitPass){
try{
upPass = Integer.parseInt(pass);
}
catch (NumberFormatException e){
upPass = 0;
}
System.out.println(upPass);
}
return true;
}
当我运行这个程序时,我得到了catch中的0(以及字符串密码中的数字),所以我猜尝试不起作用了
# 1 楼答案
在代码中,当遇到不包含任何数字的子字符串时,将
upPass
设置为0。这些是空字符串。当密码不是以数字开头时会发生这种情况你应该忽略它,因为你只需要数字
例如:
abcd12356zz33
当您使用regex[a-zA-Z]+
进行拆分时,会得到""
、"123456"
和"33"
。当您尝试将第一个空字符串转换为一个数字时,会得到一个NumberFormatException
印刷品