我做错了什么?当我运行我的程序时,它只打印我的一些字符串,并且不将第一个字母大写..
public class StringTraining extends ConsoleProgram {
public void run() {
String str = "halOOlOO";
capitalize(str);
}
private String capitalize(String str){
String s = "";
char ch;
for(int i = 0;i<str.length();i++) {
ch = str.charAt(i);
if(i==0 && Character.isLowerCase(ch)) {
Character.toUpperCase(ch);
s += ch;
i++;
} else {
Character.toLowerCase(ch);
s += ch;
i++;
}
}
println(s);
return s;
}
}
最佳答案
您不应在循环中再次递增
i
,因为它会在循环的签名中自动完成。您必须将
Character.toUpperCase(ch)
分配给String
或附加它。我建议您在循环构建 String 对象时使用
StringBuilder
更正
private static String capitalize(String str){
StringBuilder s = new StringBuilder();
char ch;
for(int i = 0;i<str.length();i++) {
ch = str.charAt(i);
if(i==0 && Character.isLowerCase(ch)) {
s.append(Character.toUpperCase(ch));
} else {
s.append(Character.toLowerCase(ch));
}
}
return s.toString();
}
输出
Halooloo
关于java - 将字符串中的第一个字母大写。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33333007/