如何检查字符串在任何位置的给定字符串中是否连续包含三个字符?

时间:2018-12-22 11:02:05

标签: java

我正在与网站进行应用程序集成。基本上,我是PHP开发人员,但android应用程序使用的是Java,但我并不十分专业。我需要提供一个通过应用程序本身更改密码的选项。 当用户以字符串形式输入新密码时,我希望该应用检查并确保新密码中以相同顺序没有重复使用旧密码中的三个连续字符。

例如。如果用户使用旧密码“ Angel173MN”,则他/她将无法选择包含nge,l17、73M等三个字符的任何新密码(与旧密码的顺序相同,但是其他顺序为相同的字符允许,例如gen,7l1、3M7等)

大写/小写在这里无关紧要。谁能指导我该怎么做?

1 个答案:

答案 0 :(得分:3)

    String oldPassword = "Angel173MN";
    String newPassword = "Tomato47nge";
    for (int i = 0; i < oldPassword.length() - 2; i++) {
        String sub = oldPassword.substring(i, i + 3);
        if (newPassword.contains(sub)) {
            System.out.println("Substring " + sub + " is part of both passwords");
        }
    }

输出:

  

子字符串nge是两个密码的一部分

正如@ coder-croc在评论中指出的那样,由于不需要查找更多匹配项,因此可以在第一个匹配项时中断循环。由于我将字符串运算理解为您的问题的核心,因此我将逻辑留给您自己。

Java中的String类对许多字符串操作都提供了很好的支持。

链接: Documentation of String