如何在不使用toUpperCase方法的情况下将字符串转换为大写?

Nic*_*vin 6 java string

我是java的初学者,无法使用此代码.我要做的是将任何输入的字符串转换为大写,而不使用toUpperCase字符串方法.这就是我所拥有的:

public String toUpperCase(String str)
{
    for(int i = 0; i < str.length(); i++)
    {
        char a = str.charAt(i);
        a = Character.toUpperCase(a);
        str += Character.toString(a);
    }
return str;
}
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 8

您正在使用str输入和输出(因此您String有无限长度,因为您不断添加字符).你可以使用static,因为你没有使用实例状态.而且,您可以使用for-each循环.最后,添加另一个String或更好的StringBuilder类似

public static String toUpperCase(String str) {
    StringBuilder sb = new StringBuilder();
    for (char ch : str.toCharArray()) {
        sb.append(Character.toUpperCase(ch));
    }
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)


D.K*_*ier 5

有以下方法,但它不考虑英语之外的任何字符(没有变音符号,z后面没有其他语言的字符).

public String toUpperCase(String str) {
    char[] chars = str.toCharArray();

    for (int i=0; i<chars.length; i++) {
        char c = chars[i];
        if ('a' <= c && c <= 'z') {
            chars[i] = (char) (c - 'a' + 'A');
        }
    }

    return new String(chars);
}
Run Code Online (Sandbox Code Playgroud)