如何解析通过在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;   
  }

当我运行程序时,我得到了0(以及密码字符串中的数字),所以我猜尝试不起作用了吗?

chenhui651 回答:如何解析通过在Java中将字符串拆分为Int值获得的数据?

在代码中,遇到不包含任何数字的子字符串时,请将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
本文链接:https://www.f2er.com/3169108.html

大家都在问