我是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;
}
请帮我解决我的错误
答案 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