【发布时间】:2015-07-14 07:09:34
【问题描述】:
我有一个名为“originalstring”的字符串,其中包含一个大小写混合字符的句子。
我只是想翻转字符串,以便如果字符是小写,则将其变为大写,反之亦然并返回。
我试过这段代码,它以大写返回原始字符串:
for (int i = 0; i < originalString.length(); i++) {
char c = originalString.charAt(i);
if (Character.isUpperCase(c)) {
originalString += Character.toLowerCase(c);
}
if (Character.isLowerCase(c)) {
originalString += Character.toUpperCase(c);
}
}
return originalString;
【问题讨论】:
-
+=转换??这很奇怪 -
这是您的实际代码吗?乍一看,这对我来说就像一个无限循环......
-
这怎么可能是一个无限循环?你需要一个 else 语句。您的第一个
if将大写字母转换为小写字母。然后它立即进入您的第二个if语句,并将其转换为大写。只需将第二个if切换为else。我还建议使用 StringBuilder。 -
@user489041 因为它添加到
originalString而不删除字符,并且originalString.length()处于循环终止条件。当然,它最终会耗尽内存。
标签: java string character uppercase lowercase