将字母转换为小写而不使用toLowerCase()

Sah*_*ini 2 java for-loop

我正在尝试将字母转换为小写字母,并且正在使用for循环,而不使用.tolowerCase。我不确定,但是无法正常工作。这是我的代码。

public static void main(String[] args) {
    // TODO Auto-generated method stub
    String a1 = "apple";
    char[] s1 = a1.toCharArray();  

    for (int i=0; i<s1.length; i++)
    {
        int CharNumber = s1[i] - 'a';
        int NewChar = (char) CharNumber;
        char[] NewNew = Character.toChars(NewChar);
        System.out.println(NewNew);

    }

}
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 5

您可以简单地将每个字符视为整数,然后将32个字符加到ASCII整数值小于或等于90的任何字符上。这会将大写字母转换为小写字母,而保留小写字母。

String a1 = "aPplE";
char[] s1 = a1.toCharArray();
int diff = 'a' - 'A';

for (int i=0; i < s1.length; i++) {
    if (s1[i] >= 'A' && s1[i] <= 'Z') {
        s1[i] += diff;
    }
}

System.out.println(s1);

apple
Run Code Online (Sandbox Code Playgroud)

演示版