我不明白为什么这段代码有错误

时间:2019-05-17 00:26:10

标签: java

我正在编写用于家庭作业的代码,使String大写,但没有专门使用toUpperCase。所以即时通讯使用toUpperCase(char)然后使用for循环逐一遍历String。由于某种原因,它是错误的。顺便说一下,str是由我的老师定义的,但它是随机的。

int len = str.length();

for(int i = 0;i < len;i++)

{

    char cur = str.charAt(i);

    char cur = Character.toUpperCase(char);

}

我看不到错误

1 个答案:

答案 0 :(得分:1)

您的错误在此行上:

char cur = Character.toUpperCase(char);

该行应为:

cur = Character.toUpperCase(cur);

您至少有两个问题。变量cur被定义了两次。您只需指定一次“ char”类型。任何其他时间,您将重新定义变量。另一个问题是您传递的参数'char'不是您想要的。您想将字符传递给该函数,也就是您名为“ cur”的变量。

有点挑剔,很显然,您至少是不熟悉这种编程语言的新手,可以进行简单的修改以使代码好一点。

// No need to have a separate variable for str.length() as it is only used once.
for(int i = 0;i < str.length();i++)
{

    // This really can be done on one line like this or as below.
    //char uppercaseCharacter = Character.toUpperCase(str.charAt(i));

    char currentCharacter = str.charAt(i);

    char uppercaseCharacter = Character.toUpperCase(currentCharacter);

}

但是,您有一个更大的问题,因为此代码无法完成您想要的操作。至少在当前状态下。如果要使输入字符串大写,则需要对其进行修改。在这种情况下,您只是复制字符而不是修改原始字符串。通过简单的google搜索即可轻松回答该问题,而该问题不在原始问题的范围之内。