字符串生成器替换字符串中偶数索引处的元素

String builder replace elements at even indexes in string

我正在尝试用 ASCII 值替换字符串中偶数的出现。我正在使用 StringBuilder 替换方法,每次迭代从索引开始,以相同的索引结束,并将值替换为 ASCII 值。由于某种原因,替换方法没有用 ASCII 值替换索引处的元素。

sb 是我保存字符串的 StringBuilder; result 是我想要的返回字符串。

for (int i =0; i < sb.length(); i=i+2) {
     char c = sb.charAt(i);
     int n = c;
     String a = String.valueOf(n);
     sb.replace(sb.charAt(i), sb.charAt(i), a);
     result = sb.toString();
}

有些地方我会更正,但@Nikolai Dmitriev 已经指出了其中的一些地方。

  1. n 是必需的,尽管@Nikolai Dmitriev 说不需要。因为你想用它的 ASCII 值替换它。但是,您可以将其缩短为 String a = String.valueOf((int) c); 甚至摆脱 c 并直接使用 `String a = String.valueOf((int) sb.charAt(i)) ;
  2. 您正在使用 sb.replace(char start, char end, String str);,而函数应该接受 sb.replace(int start, int end, String str);。要更正此问题,只需使用 sb.replace(i, i + 1, a);。请注意,您使用 end = i + 1 因为 StringBuilder 替换函数结束值是独占的(不包括)。
  3. 最后初始化result。如果您在内部执行该变量,则该变量的范围在 for 循环内,并且由于您想要 return 它,因此您需要在完成所有偶数索引替换后对其进行初始化。