Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 新密码的连续字符大于3,旧密码则会引发错误。但即使它是3,也会产生误差_Java - Fatal编程技术网

Java 新密码的连续字符大于3,旧密码则会引发错误。但即使它是3,也会产生误差

Java 新密码的连续字符大于3,旧密码则会引发错误。但即使它是3,也会产生误差,java,Java,在本例中,我们检查新密码的连续字符是否大于3,如果旧密码大于3,则应抛出错误。对于此逻辑,如下所示: if (oldPassword != null) { for (int i = 0; i < oldPassword.length() - PASSWORD_MAX_CONS_LENGTH +1; i++) { if (passwordString.indexOf(oldPassword.substring(i, i + PASSWORD_M

在本例中,我们检查新密码的连续字符是否大于3,如果旧密码大于3,则应抛出错误。对于此逻辑,如下所示:

if (oldPassword != null) {
      for (int i = 0; i < oldPassword.length() - PASSWORD_MAX_CONS_LENGTH +1; i++) {
        if (passwordString.indexOf(oldPassword.substring(i, i
          + PASSWORD_MAX_CONS_LENGTH)) >= 0) {
          errors.add(ERROR_PASS_CONS_PREV_PASS);
          break;
        }
      }
    }
PASSWORD_MAX_CONS_LENGTH = 3;
if(oldPassword!=null){
对于(int i=0;i=0){
错误。添加(错误\通过\控制\上一次通过);
打破
}
}
}
密码长度=3;
但问题是,若它等于3,它甚至是抛出错误。 我们能有更好的解决办法吗。由于这一逻辑有点复杂: if(passwordString.indexOf)(oldPassword.substring(i,i +密码(最大长度)>=0)
我们可以使用任何正则表达式来检查与旧密码相比的3个连续字符。有什么方法可以做到这一点吗?

indexOf()的参数是开始索引和要停止的索引+1。因此只需在
i+PASSWORD\u MAX\u CONS\u LENGTH
中添加一个
indexOf()
的参数是开始索引和要停止+1的索引。因此,只需在
i+PASSWORD\u MAX\u CONS\u LENGTH

中添加一个,使用正则表达式将使其更加复杂。您只需将子字符串的结束索引增加1。

使用正则表达式将使其更加复杂。你应该将子字符串的结束索引增加1。

IMHO,这种密码规则很愚蠢。你真的只在if块之后设置
password\u MAX\u CONS\u LENGTH
吗?不,我们只在前面设置。密码\u MAX\u CONS\u LENGTHIMHO,这种密码规则很愚蠢。你真的只在if块之后设置
密码\u MAX\u CONS\u LENGTH
吗?不,我们只在if块之前设置。密码\u MAX\u CONS\u LENGTHI尝试了相同的事情,但我得到了此异常:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:12我尝试了相同的事情,但得到了此异常:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:12我尝试了相同的事情,但得到了此异常:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:12这是您应该能够自己调试的内容。我建议从for循环条件中删除+1。我尝试了相同的方法,但出现了以下异常:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:12这是您应该能够自己调试的。我建议从for循环条件中删除+1