【发布时间】:2024-01-14 22:53:02
【问题描述】:
所以我正在编写一个小返回程序,用于切换字符串中字符的大小写,因此 HELLo 变为 hElLo,hello 变为 HeLlO,aaa 变为 AaA。不过我有点麻烦。我还是新手,正在学习 java,如果这违反了规则,我很抱歉:
public static String altCase(String text){
String str = "";
for (int i = 0; i <= text.length()-1; i++)
{
char ch = text.charAt(i);
boolean lastIsUpperCase = true;
if(Character.isUpperCase(i-1))
{
lastIsUpperCase = true;
}
else if(Character.isLowerCase(i-1))
{
lastIsUpperCase = false;
}
if(lastIsUpperCase)
{
str += Character.toLowerCase(ch);
}
else if (!lastIsUpperCase)
{
str += Character.toUpperCase(ch);
}
}
return str;
}
【问题讨论】:
-
Character.isUpperCase(i-1)是你的问题,Character.isLowerCase(i-1)应该是……Character.isUpperCase(ch)和Character.isLowerCase(ch) -
你必须解释问题是什么。然后,如果有任何错误,请添加错误消息。如果有堆栈跟踪,请添加堆栈跟踪。还可以通过添加注释来标记代码中发生错误的位置。编辑您的问题并将所有这些信息添加到问题中。记得格式化!
-
仅供参考,但您的代码 sn-p 不包含任何开关案例。这比使用嵌套的 if 语句更实用...
-
从
i=1开始循环,而不是i=0。 -
@ryekayo OP 正在尝试切换(更改)字符的大小写(字母大小写,大写或小写),而不是使用
switch和case。
标签: java string char return case-sensitive