Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串中的第一个字母大写。我做错了什么?_Java_String_Methods_Char - Fatal编程技术网

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

Java 将字符串中的第一个字母大写。我做错了什么?,java,string,methods,char,Java,String,Methods,Char,我做错了什么?当我运行我的程序时,它只打印我的一些字符串,并且不大写第一个字母 public class StringTraining extends ConsoleProgram { public void run() { String str = "halOOlOO"; capitalize(str); } private String capitalize(String str){ String s = "";

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

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

}
公共类StringTraining扩展控制台程序{
公开募捐{
String str=“Haloloo”;
资本化(str);
}
私有字符串大写(字符串str){
字符串s=“”;
char ch;

对于(int i=0;i您需要将变量ch指定给大写或小写值:

for(int i = 0;i<str.length();i++) {
        ch = str.charAt(i);
        if(i==0 && Character.isLowerCase(ch)) {
            ch = Character.toUpperCase(ch);
            s += ch;
        } else {
            ch = Character.toLowerCase(ch);
            s += ch;
        }
    }

for(int i=0;i您需要将变量ch分配给大写或小写值:

for(int i = 0;i<str.length();i++) {
        ch = str.charAt(i);
        if(i==0 && Character.isLowerCase(ch)) {
            ch = Character.toUpperCase(ch);
            s += ch;
        } else {
            ch = Character.toLowerCase(ch);
            s += ch;
        }
    }
for(int i=0;i
  • 您不应该在循环中再次增加
    i
    ,因为它将在循环的签名中自动完成

  • 您必须将
    字符.toUpperCase(ch)
    分配给
    字符串
    或附加它

  • 我建议在循环构建字符串对象时使用
    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();
    }
    
  • 您不应该在循环中再次增加
    i
    ,因为它将在循环的签名中自动完成

  • 您必须将
    字符.toUpperCase(ch)
    分配给
    字符串
    或附加它

  • 我建议在循环构建字符串对象时使用
    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();
    }
    
    返回字符串,您需要将其分配给
    ch
    。 您还需要仅将
    i
    增加一次(在
    中为
    ,而不是在
    中如果

    返回字符串,您需要将其分配给
    ch

    您还需要只增加
    i
    一次(在
    for
    中,而不是在
    if
    中)

    大写(字符串)
    方法中删除一些不必要的代码,例如
    i++
    ,然后使用
    s+=String.valueOf(Character.toUpperCase(ch));
    code代替

    Character.toUpperCase(ch);
    s += ch;
    
    完全大写(字符串)方法

    private static 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)) {
                s += String.valueOf(Character.toUpperCase(ch));
            } else {
                s += String.valueOf(Character.toLowerCase(ch));
            }
        }
        println(s);
        return s;
    }
    
    私有静态字符串大写(字符串str){
    字符串s=“”;
    char ch;
    对于(int i=0;i
    大写(字符串)
    方法中删除一些不必要的代码,例如
    i++
    并使用
    s+=String.valueOf(Character.toUpperCase(ch));
    code代替

    Character.toUpperCase(ch);
    s += ch;
    
    完全大写(字符串)方法

    private static 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)) {
                s += String.valueOf(Character.toUpperCase(ch));
            } else {
                s += String.valueOf(Character.toLowerCase(ch));
            }
        }
        println(s);
        return s;
    }
    
    私有静态字符串大写(字符串str){
    字符串s=“”;
    char ch;
    对于(int i=0;i
    像这样更改大写(字符串str)方法-

     private static String capitalize(String str) {
        char[] chars = str.toCharArray();
        String caps = chars[0]+"";
        caps = caps.toUpperCase();
        String output = caps;
        for(int i=1;i<chars.length;i++) {
            output = output + chars[i];
        }
        return output;
    }
    
    像这样更改大写(stringstr)方法-

     private static String capitalize(String str) {
        char[] chars = str.toCharArray();
        String caps = chars[0]+"";
        caps = caps.toUpperCase();
        String output = caps;
        for(int i=1;i<chars.length;i++) {
            output = output + chars[i];
        }
        return output;
    }
    

    是否仅将第一个字母大写并保持字符串的其余部分相同,还是仅将第一个字母大写?是否仅将第一个字母大写并保持字符串的其余部分相同,还是仅将第一个字母大写?