大家好,我开始学习一些Java。
我发现Codewars.com是锻炼和学习的好方法。
我得到了以下指示:
accum("abcd") -> "A-Bb-Ccc-Dddd"
accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
accum("cwAt") -> "C-Ww-Aaa-Tttt"
到目前为止,这是我设法做到的,如果有人可以向我解释如何正确返回它,以及如何在每个字母的末尾添加“-”。
for (int i = 1; i<=x.length(); i++){
return x.substring(i-1,i).toUpperCase();
for (int j = 1; j<i; j++){
return x.substring(i-1,i);
}
}
OUTPUT:
A
M
m
I
i
i
T
t
t
t
谢谢你的支持。
最佳答案
当您有一个return
后无法执行的代码时,您只需读取每个字符,然后将其乘以索引
您可以使用StringBuilder
轻松完成此操作
static String accum(String value) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < value.length(); i++) {
sb.append(value.toUpperCase().charAt(i));
for (int j = 0; j < i; j++) {
sb.append(value.toLowerCase().charAt(i));
}
sb.append("-");
}
return sb.deleteCharAt(sb.lastIndexOf("-")).toString();
}
使用Java11和
String.reapeat
static String accum(String value) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < value.length(); i++) {
sb.append(value.toUpperCase().charAt(i));
sb.append(String.valueOf(value.toLowerCase().charAt(i)).repeat(i));
sb.append("-");
}
return sb.deleteCharAt(sb.lastIndexOf("-")).toString();
}