StringBuffer strbuff=new StringBuffer("Hello students");
char ch=strb.charAt(9).toUpperCase();
它不起作用 - 我想在10位置转换角色toUppercase()
。我怎么能这样做?
答案 0 :(得分:7)
toUpperCase()
是String / Character类的方法,它不能应用于本机char类型。
PS:请注意,strbuff.charAt(9)
会返回char
并将其转换为大写字母,您需要像这样调用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);
答案 1 :(得分:4)
我确定你要修改你的字符串:
StringBuffer strbuff=new StringBuffer("Hello students");
strbuff.setCharAt(9, Character.toUpperCase(strbuff.charAt(9)));
提示1:如果您使用的是当前Java版本,请使用StringBuilder
,除非您需要线程安全。
提示2:您无法在char
上调用方法,因为它是基本类型,这就是您使用静态Character#toUpperCase
方法的原因。
答案 2 :(得分:2)
这就是我想要的,
char ch=Character.toUpperCase(strbuff.charAt(9));
答案 3 :(得分:2)
char ch=strb.charAt(9).toUpperCase();
替换
char ch=Character.toUpperCase(strbuff.charAt(9));
答案 4 :(得分:1)
您的StringBuffer
名为strbuff
,但您正在第二行访问(未定义)strb
。
即使这只是一个拼写错误,第二行除了创建一个新的变量ch
之外什么都不做,但它不会用它来构造一个新的字符串。