java中的中间字符到大写字母

时间:2013-10-06 09:56:07

标签: java

StringBuffer strbuff=new StringBuffer("Hello students");
char ch=strb.charAt(9).toUpperCase();

它不起作用 - 我想在10位置转换角色toUppercase()。我怎么能这样做?

5 个答案:

答案 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之外什么都不做,但它不会用它来构造一个新的字符串。