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语句的原因。
答案 0 :(得分:3)
if (length = 0)
应为if (length == 0)
您将值0分配给length
而不是将分配给0。
我建议你看一下this:
在运行时,赋值表达式的结果是值 分配发生后的变量。一个结果 赋值表达式本身不是变量。
这样,你的if
永远不会满足,因为它内部的值被评估为已分配的值(在这种情况下为0),所以你的程序转到else
,你应该在那里:
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
答案 1 :(得分:2)
在if
声明中,您要将值0
指定给length
。因此,您的编译器抱怨,因为它需要boolean
表达式,而不是if
语句中的int(赋值返回它分配的值,这就是它提到{{1}的原因})。
您的意思是使用int
来评估布尔表达式。
第二个问题是因为==
返回一个charAt(int)
原语,它没有任何方法。
在这种情况下,您可能希望在char
的第一个字符上使用Character.toUpperCase(char)
并附加其余字符。
答案 2 :(得分:2)
你错过了if语句中的==
charAt(0)
返回一个字符,一种方法是将字符串设为Character.toString(c)
答案 3 :(得分:0)
将其更改为:
if (length == 0) {
return s;
}
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
注意:如果字符串的长度正好为1,那么由于s.substring(1)
,您仍会收到错误。您可能希望为字符串的长度恰好为1时添加一个附加条件。
答案 4 :(得分:0)
这一行:
if (length = 0) {
表示“我想将长度设置为零”。但你想要的是
if (length == 0) {
表示“长度是否等于零?”
第一个语句最终会导致异常,因为您将整数传递到需要布尔值的位置。
答案 5 :(得分:0)
也许你可以试试这个:
String s = "testing";
String upper = s.toUpperCase();
System.out.print(upper);