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

它不起作用 - 我想在 10 位置转换字符toUppercase()。我怎样才能做到这一点?

4

5 回答 5

7

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);
于 2013-10-06T09:59:27.863 回答
4

我假设你想修改你的字符串:

StringBuffer strbuff=new StringBuffer("Hello students");
strbuff.setCharAt(9, Character.toUpperCase(strbuff.charAt(9)));

提示 1:如果您使用的是当前 Java 版本,请使用StringBuilder,除非您需要线程安全。

提示 2:您不能在 a 上调​​用方法,char因为它是原始类型,这就是您使用静态Character#toUpperCase方法的原因。

于 2013-10-06T10:00:33.443 回答
2

我猜这就是你需要的,

char ch=Character.toUpperCase(strbuff.charAt(9));
于 2013-10-06T09:59:31.733 回答
2
char ch=strb.charAt(9).toUpperCase();

替换为

char ch=Character.toUpperCase(strbuff.charAt(9));
于 2013-10-06T10:00:40.927 回答
1

StringBuffer的名为strbuff,但您正在strb第二行访问 (undefined) 。

即使这只是一个错字,第二行除了创建一个新变量ch之外什么也不做,但它不使用它来构造一个新字符串。

于 2013-10-06T09:58:32.997 回答