在StringBuilder字符串中替换"char"

Noo*_*tor 0 java stringbuilder char

我的要求很简单,获取一个char位置并将其替换为另一个.
唯一的问题是,charindex在运行时出现,不能硬编码.

我实际执行的虚拟代码:

public static void main(String args[])
{
   StringBuilder sb = new StringBuilder("just going nuts")  ;
   System.out.println(" "+sb);
   //System.out.println(sb.charAt(4)); //this works
   sb.setCharAt(sb.indexOf((sb.charAt(4))), sb.charAt(0)); //line 8 -error line
   System.out.println(" "+sb);
}
Run Code Online (Sandbox Code Playgroud)

我甚至试着char用引号括起来:

sb.setCharAt(sb.indexOf(( "\""+sb.charAt(4)+"\"" )), sb.charAt(0));
Run Code Online (Sandbox Code Playgroud)

但仍然是同样的错误

错误

line no:8: cannot find symbol
symbol : method indexOf(char)
location: class java.lang.StringBuilder
sb.setCharAt(sb.indexOf((sb.charAt(4))), sb.charAt(0));
Run Code Online (Sandbox Code Playgroud)

我不是很流利的Java,但找不到setCharAt具有动态值的函数示例,就像在这种情况下!

dim*_*sli 6

错误是因为indexOf期待String不是char这样所有你需要做的就是用它包装String.valueOf

sb.setCharAt(sb.indexOf(String.valueOf((sb.charAt(4)))), sb.charAt(0));
Run Code Online (Sandbox Code Playgroud)

输出

 just going nuts
 justjgoing nuts
Run Code Online (Sandbox Code Playgroud)

当您键入甚至提供解决方案时,现代IDE应该捕获此编译时错误(在IntelliJ下面的情况下):

在此输入图像描述