gpt4 book ai didi

java - 检查一个字符串是否有四个连续的字母升序或降序

转载 作者:搜寻专家 更新时间:2023-11-01 01:08:27 26 4
gpt4 key购买 nike

美好的一天堆栈溢出。

我是使用正则表达式的新手,这是我的问题 - 如果密码包含 4 个连续字符,我需要检查密码。到目前为止,我刚刚介绍的是关于数字的内容。这是我的正则表达式:

升序数字 - ^.?(?:0123|1234|2345|3456|4567|5678|6789).$

降序数字 - ^.?(?:9876|8765|7654|6543|5432|4321|3210).$

这仅适用于数字。我知道这在正则表达式中已经是一种矫枉过正,所以我不想用字母来做。如果我那样做,那就太过分了。

abcdblah//因为有 abcd 而为真

helobcde//由于 bcde 而为真

dcbablah//真的因为 dcba

heloedcb//由于 edcb 而为真

任何帮助将不胜感激。感谢 stackoverflow。

最佳答案

答案很简单:不要使用正则表达式。

使用这种方法:

  • 遍历每个字母(当然,跳过最后的树字母)
    • 遍历接下来的三个字母并检查升序
      • 如果它们都在上升,则返回 true。
    • 遍历接下来的三个字母并检查降序
      • 如果它们都在下降,则返回 false。
  • 返回错误

在代码中,这看起来像这样(未经测试的代码):

public boolean checkForAscendingOrDescendingPart(String txt, int l)
{
for (int i = 0; i <= txt.length() - l; ++i)
{
boolean success = true;
char c = txt.charAt(i);
for (int j = 1; j < l; ++j)
{
if (((char) c + j) != txt.charAt(i + j))
{
success = false;
break;
}
}
if (success) return true;

success = true;

for (int j = 1; j < l; ++j)
{
if (((char) c - j) != txt.charAt(i + j))
{
success = false;
break;
}
}
if (success) return true;
}
return false;
}

祝你好运!
计算器:)

关于java - 检查一个字符串是否有四个连续的字母升序或降序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12493931/

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