任务是获取每个第n个字符并将其放入字符串中。 我解决了这个问题。
如果Miracle是输入的字符串并且int = 2,我将得到以下输出:" Mrc",而它应该是" Mrce"。
为什么错过了最后一个角色?逻辑部分对我来说似乎是合理的。
public String everyNth(String str, int n) {
String firstletter = str.substring(0,1); // We store the first letter as well.
String secondhalf = "";
while(str.length() > n) { // Run as long as n reaches the end of the string.
secondhalf += str.substring(n, n+1); // Add Nth character to string.
n+=n;
}
return firstletter+secondhalf;
}
编辑:添加了一个单独的计数器,int counter = n;所以它不会一直加倍。
答案 0 :(得分:3)
你的问题在这里:
n+=n;
第一次是2,然后是4,然后是8 ......
只需使用单独的计数器。
答案 1 :(得分:1)
我会在for中使用charAt函数:
public String everyNth(String str, int n) {
String result="";
for(i=0; i<str.length(); i=i+n){
result+=str.charAt(i);
}
return result;
}