如何将每个n,2n,3n ..字符添加到Java中的字符串

时间:2016-09-08 02:45:21

标签: java string

我是Java的新手,我正在尝试编写一个函数,该函数返回一个字符串,该字符串包含当前字符串中所有且仅位于n,2n,3n等位置的字符

我尝试了以下代码但它没有工作

public String everyNth(String str, int n) {
String result="";
(i=0; i<str.length(); i=i+n){
result+=str.charAt(i);
}
return result;
}

请帮我解决我的错误

2 个答案:

答案 0 :(得分:1)

这里的一个选项是迭代输入字符串中的每个字符,如果它是n的倍数,则保留一个字符:

public String everyNth(String str, int n) {
    StringBuilder result = new StringBuilder("");

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

    return result.toString()
}

<强>用法:

String result = everyNth("1234567890abcdefghijklmnopqrstuvwxyz", 1);
System.out.println(result);
result = everyNth("1234567890abcdefghijklmnopqrstuvwxyz", 3);
System.out.println(result);

<强>输出:

1234567890abcdefghijklmnopqrstuvwxyz
369behknqtwz

答案 1 :(得分:0)

根据你与蒂姆的讨论。我修改了代码。除此之外,你的代码在java语言场景中有编译错误。

1,错过var currentMarker = markers[4]; 个关键字。

2,错过变量i的for关键字。

您应该像Eclipse一样使用IDE,以便在运行代码之前显示任何编译错误。

请参阅以下代码。

int