将每个第N个字符添加到字符串

时间:2014-12-07 18:11:37

标签: java string find character

任务是获取每个第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;所以它不会一直加倍。

2 个答案:

答案 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;
}