StringBuffer strbuff=new StringBuffer("Hello students");
char ch=strb.charAt(9).toUpperCase();
它不起作用 - 我想在 10 位置转换字符toUppercase()
。我怎样才能做到这一点?
StringBuffer strbuff=new StringBuffer("Hello students");
char ch=strb.charAt(9).toUpperCase();
它不起作用 - 我想在 10 位置转换字符toUppercase()
。我怎样才能做到这一点?
toUpperCase()
是 String/Character 类的方法,不能应用于原生 char 类型。
PS:请注意,这strbuff.charAt(9)
将返回您 achar
并将其转换为大写,您需要Character.toUpperCase(char)
像这样调用:
这应该起作用:
StringBuffer strbuff=new StringBuffer("Hello students");
char ch=Character.toUpperCase(strbuff.charAt(9));
System.out.println(ch); // D
如果你想在 StringBuffer 中重新设置它:
strbuff.setCharAt(9, ch);
我假设你想修改你的字符串:
StringBuffer strbuff=new StringBuffer("Hello students");
strbuff.setCharAt(9, Character.toUpperCase(strbuff.charAt(9)));
提示 1:如果您使用的是当前 Java 版本,请使用StringBuilder
,除非您需要线程安全。
提示 2:您不能在 a 上调用方法,char
因为它是原始类型,这就是您使用静态Character#toUpperCase
方法的原因。
我猜这就是你需要的,
char ch=Character.toUpperCase(strbuff.charAt(9));
char ch=strb.charAt(9).toUpperCase();
替换为
char ch=Character.toUpperCase(strbuff.charAt(9));
您StringBuffer
的名为strbuff
,但您正在strb
第二行访问 (undefined) 。
即使这只是一个错字,第二行除了创建一个新变量ch
之外什么也不做,但它不使用它来构造一个新字符串。