java - 将字符串中的第一个字母大写。我究竟做错了什么?

标签 java string methods char

我做错了什么?当我运行我的程序时,它只打印我的一些字符串,并且不将第一个字母大写..

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;
    }

}

最佳答案

  1. 您不应在循环中再次递增 i,因为它会在循环的签名中自动完成。

  2. 您必须将 Character.toUpperCase(ch) 分配给 String 或附加它。

  3. 我建议您在循环构建 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/

相关文章:

java - JSF2 "f:ajax render"渲染超过指定的 id

Java CDI 依赖项无效 DependsOn

java - 从 Java 字符串中去除前导和尾随空格

string - 是否可以使用 "plain"长字符串?

java - 如何将 JTextfield 的 setText 设置为带有数组的方法

java - 听法

java - JFrame 不绘制内容,仅在 ActionListener 内可见时显示白色矩形

python - 将我的整数放入 python 中的列表中

使用while循环的Java程序将其更改为使用方法

java - 如何反射(reflect)类(class)偏好的变化?