我正在编写用于家庭作业的代码,使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);
}
我看不到错误
答案 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搜索即可轻松回答该问题,而该问题不在原始问题的范围之内。