将每第N个字符添加到字符串
问题描述:
任务是获取每个第n个字符并将其放入一个字符串中。 我在中途解决了这个问题。将每第N个字符添加到字符串
如果奇迹是输入的字符串,并且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;所以它始终没有使价值翻倍。
答
你的问题就在这里:
n+=n;
第一次2,然后4,然后8 ...
只需使用独立的计数器。
+0
感谢您的帮助。我现在增加了一个单独的柜台。 – kensil 2014-12-07 18:26:42
答
我会用的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;
}
除了“N + = N”的错误,你实现了可怕的性能。 – dzidzitop 2014-12-07 18:17:10
如果你想要一个更简单的方法来通过索引从字符串中提取单个字符,你可以使用'str.charAt(index)'而不是子字符串。 – cschieb 2014-12-07 18:18:08
@dzidzitop,即时通讯编程新手。只是试图做一些简单的任务。您的解决方案将如何最大限度地提高性能 – kensil 2014-12-07 18:28:24