gpt4 book ai didi

java - 在Java中如何解析通过将字符串拆分为Int值而获得的数据?

转载 作者:行者123 更新时间:2023-12-01 22:06:07 24 4
gpt4 key购买 nike

我分割了一个字符串,该字符串是用户输入的密码,仅返回数字。我需要确保他们输入的数字不是某些数字。但首先,我需要获取返回的数据并将它们转换为 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(以及字符串密码中的数字),所以我猜尝试不起作用?

最佳答案

在代码中,当遇到不包含任何数字的子字符串时,将 upPass 设置为 0。这些是空字符串。当密码不以数字开头时会发生这种情况。

您应该忽略它,因为您只需要数字。

示例:abcd12356zz33 - 当您使用正则表达式 [a-zA-Z]+ 进行拆分时,您会得到 "", “123456”“33”。当您尝试将第一个空字符串转换为数字时,您会收到 NumberFormatException

for(String pass : splitPass){
if (!pass.isEmpty()) {
try {
upPass = Integer.parseInt(pass);
System.out.println(upPass);
//Validate upPass for the combination of numbers
} catch (NumberFormatException e) {
throw e;
}
}
}
<小时/>
checkPassword("abcd12356zz33")

打印

12356
33

关于java - 在Java中如何解析通过将字符串拆分为Int值而获得的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58687193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com