如何采取一个字符串,并返回一个字
int length = s.length();
if (length = 0){
return s;
}
else {
return s.charAt(0).toUpperCase()+ s.substring(1);
}
的大写格式,我得到两个错误说:如何采取一个字符串,并返回一个字
if (length = 0){
^^^^^^^^^^
Type mismatch: cannot convert from int to boolean
return s.charAt(0).toUpperCase()+ s.substring(1);
^^^^^^^^^^^^^^^^^^^^^^^^^
Cannot invoke toUpperCase() on the primitive type char
另外,如果它是一个空的刺痛它应该只是返回。 这就是为什么我使用If-Else语句。
if (length = 0)
应该if (length == 0)
你值为0分配给length
而不是比较为0。
我建议你看一看this:
在运行时,赋值表达式的结果是赋值发生后变量的值 。 赋值表达式的结果本身不是一个变量。
这样,你的if
是因为它里面的价值评估,以所分配的(0在这种情况下)的值永不满足,所以你的程序进入else
,有你应该:
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
在您的if
声明中,您将值0
指定为length
。正因为如此,编译器会抱怨,因为它期望boolean
表达式,而不是if
语句中的int(赋值返回它正在分配的值,这就是为什么它提到了int
)。
您的意思是使用==
来代替布尔表达式。
第二个问题是因为charAt(int)
返回一个char
原语,它没有任何方法。
在这种情况下,您可能需要在String
的第一个字符上使用Character.toUpperCase(char)
,然后再附加其他字符。
你错过了==
if语句
charAt(0)
返回一个字符,一个做这样的字符串的方法是Character.toString(c)
它改成这样:
if (length == 0) {
return s;
}
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
注:如果字符串的长度正好是1,你仍然得到一个错误,因为s.substring(1)
。您可能要添加一个附加条件时,字符串的长度正好是1
这条线:
if (length = 0) {
的意思是“我想设置的长度为零”。但是,你要的是
if (length == 0) {
这意味着“是长度等于零?”
第一条语句最终结果为异常,因为你传递一个整数到一个地方,布尔是预期。
也许你可以试试这个:
String s = "testing";
String upper = s.toUpperCase();
System.out.print(upper);
完美解释!谢谢 :) – Kimmm 2013-04-06 06:58:11