我正在尝试编写将给定字符串更改为alt case的代码。
"hello" ---> "HeLlO"
"legend of zelda" ---> "LeGeNd oF ZeLdA"
这是我到目前为止所做的:
public String altCase(String text) {
String replace = "";
for (int i = 0; i < text.length(); i++) {
if (i % 2 == 0) {
replace = text.replace(Character.toString(text.charAt(i)),
Character.toString(text.charAt(i)).toLowerCase());
} else {
replace = text.replace(Character.toString(text.charAt(i)),
Character.toString(text.charAt(i)).toUpperCase());
}
}
return replace;
}
replace
变成text
,其他任何变化都没有。
造成这种情况的原因是什么,以及如何解决?
答案 0 :(得分:1)
试试这个:
public String altCase(String text)
{
String replace = "";
for(int i = 0; i < text.length(); i++)
{
if(i%2 == 0)
{
replace += Character.toString(text.charAt(i)).toLowerCase());
}
else
{
replace += Character.toString(text.charAt(i)).toUpperCase());
}
}
return replace;
}
只需将小写字母或大写字符附加到现有字符串即可。我也看看StringBuilder。见here
答案 1 :(得分:1)
简单的代码:
StringBuilder
使代码更简单然后它只是几行,如下:
public static String altCase(String text){
StringBuilder result = new StringBuilder(text.toLowerCase());
for(int i = 0; i < text.length(); i+= 2)
result.setCharAt(i, Character.toUpperCase(text.charAt(i)));
return result.toString();
}
注意我不会将字符转换为字符串然后调用toUpperCase()
,我直接在字符上调用实用程序方法Character.toUpperCase()
。