Noo*_*tor 0 java stringbuilder char
我的要求很简单,获取一个char位置并将其替换为另一个.
唯一的问题是,char它index在运行时出现,不能硬编码.
我实际执行的虚拟代码:
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具有动态值的函数示例,就像在这种情况下!
错误是因为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下面的情况下):
