字符串生成器替换字符串中偶数索引处的元素
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 已经指出了其中的一些地方。
n
是必需的,尽管@Nikolai Dmitriev 说不需要。因为你想用它的 ASCII 值替换它。但是,您可以将其缩短为 String a = String.valueOf((int) c);
甚至摆脱 c
并直接使用 `String a = String.valueOf((int) sb.charAt(i)) ;
- 您正在使用
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 替换函数结束值是独占的(不包括)。
- 最后初始化
result
。如果您在内部执行该变量,则该变量的范围在 for 循环内,并且由于您想要 return 它,因此您需要在完成所有偶数索引替换后对其进行初始化。
我正在尝试用 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 已经指出了其中的一些地方。
n
是必需的,尽管@Nikolai Dmitriev 说不需要。因为你想用它的 ASCII 值替换它。但是,您可以将其缩短为String a = String.valueOf((int) c);
甚至摆脱c
并直接使用 `String a = String.valueOf((int) sb.charAt(i)) ;- 您正在使用
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 替换函数结束值是独占的(不包括)。 - 最后初始化
result
。如果您在内部执行该变量,则该变量的范围在 for 循环内,并且由于您想要 return 它,因此您需要在完成所有偶数索引替换后对其进行初始化。