如何获取字符串并返回单词的大小写格式

时间:2013-04-06 06:45:29

标签: java string capitalize

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语句的原因。

6 个答案:

答案 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);