gpt4 book ai didi

java - 仅减少字母

转载 作者:行者123 更新时间:2023-12-01 18:06:03 25 4
gpt4 key购买 nike

我必须处理一些字符串,我应该将它们放在左侧 N 个位置来组织字符串。

这是我的代码:

private String toLeft() {
String word = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // Example
byte lpad = 2; // Example
StringBuilder sb = new StringBuilder();
for (int i = 0; i < word.length(); i++) {
sb.append((char) (word.charAt(i) - lpad));
}
return sb.toString();
}

它适用于不需要多次移动的输入...

所以,问题是,当要移动的位置数 N 有点大(例如 10)时,它会返回非字母,如下例所示,我该怎么做才能防止这种情况发生?

例如:ABCDEFGHIJKLMNOPQRSTUVWXYZ如果我将每个字符向左移动 10 个位置,它将返回 789:;<=>?@ABCDEFGHIJKLMNOP而它必须返回 QRSTUVWXYZABCDEFGHIJKLMNOP .

一些输入及其预期输出:

  • VQREQFGT // 2 positions to left == TOPCODER
  • ABCDEFGHIJKLMNOPQRSTUVWXYZ // 10 positions to left == QRSTUVWXYZABCDEFGHIJKLMNOP
  • LIPPSASVPH // 4 positions to left == HELLOWORLD

最佳答案

我认为您误解了您的(作业?)要求要求您做什么。让我们看一下您的示例:

VQREQFGT // 2 positions to left == TOPCODER

有道理。输出中的每个字符都是相应输入之前的两个字符。但请继续阅读...

ABCDEFGHIJKLMNOPQRSTUVWXYZ // 10 positions to left == QRSTUVWXYZABCDEFGHIJKLMNOP

没有任何意义(字面意思)。在字母表中,字母 Q 不在 A 之前 10 个字符。字母表中没有位于 A 之前的字母。

好的,那么如何在 10 步内从 A 到达 Q 呢?

回答...你绕过去!

AZYXW >VUTSRQ > ... 10 步:数一下。

因此,需求实际上要求的是左侧 N 个字符环绕。即使他们没有明确说明这一点,这也是示例“起作用”的唯一方法。

但是您刚刚在左侧实现了 N 个字符,没有环绕。您需要实现环绕。 (我不会向您展示如何操作,但有很多方法可以做到这一点。)

<小时/>

还有一件事。问题的标题说“仅递减字母”......这对我来说意味着您的要求是不应该递减非字母的字符。但是,在您的代码中,您将减少输入中的每个字符,无论它是否是字母。 (修复方法很简单……您应该自己解决。)

关于java - 仅减少字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36380250/

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