gpt4 book ai didi

java - 需要帮助 : Something is not functioning right in my loop. 我相信结果 + 结果字符串导致了问题?

转载 作者:行者123 更新时间:2023-11-29 08:24:18 30 4
gpt4 key购买 nike

我在这里做这个特定的练习:问题:给定一个非空字符串和一个整数 N,返回以 char 0 开头的字符串,然后是字符串的每个第 N 个字符。所以如果 N 是 3,使用 char 0, 3, 6, ...等等。 N 为 1 或更大。例如:everyNth("奇迹", 2) → "Mrce"

我的代码:

public String everyNth(String str, int n) {
int a = 0; String result= "";

for (int i=0;i<str.length();i++) {
if (str.charAt(i) % n == 0) {
result = result + str.charAt(i);
a++;
}
}
return result;
}

鉴于我的计划,我不知道如何修复我的代码:1.将结果移动到字符串结果2. 运行一个循环,只有当 modular = 0 时才移动数据

但是我得到的不是Mrce,而是rl我不需要更简单的解决方案,我只想了解发生了什么问题以及如何使其正常工作。

练习编号:https://codingbat.com/prob/p196441

最佳答案

我不知道如何在不告诉你答案的情况下给你建议,这很简单。你想要每第 n 个字符。所以这个,

if (str.charAt(i) % n == 0) { 

应该只是

if (i % n == 0) {

仅通过该更改(以及您提供的输入),我得到(如预期的那样)

Mrce

但是,我们可以确实可以通过在每次循环迭代中递增n 来使其更容易。因此无需测试 i 是否可以被 n 整除。我们还可以使方法 static。我更喜欢 StringBuilder。喜欢,

public static String everyNth(String str, int n) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i += n) {
sb.append(str.charAt(i));
}
return sb.toString();
}

关于java - 需要帮助 : Something is not functioning right in my loop. 我相信结果 + 结果字符串导致了问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54622818/

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