How to convert string to uppercase without using toUpperCase method?

I am new to java and can't get this code to work. I need to convert any input string to uppercase without using the string method toUpperCase. This is what I have:

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;
}
+4
source share
6 answers

You use strboth input and output (so yours Stringhas infinite length as you continue to add characters). And you can use staticbecause you are not using instance state. And you can use a loop for-each. Finally, add another Stringor better a StringBuilderas

public static String toUpperCase(String str) {
    StringBuilder sb = new StringBuilder();
    for (char ch : str.toCharArray()) {
        sb.append(Character.toUpperCase(ch));
    }
    return sb.toString();
}
+7
source

, (no , az).

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);
}
+4

, , , StringBuilder, . , :

public static String toUpperCase(String s){
    String str = "";
    for(int x=0; x<s.length(); x++){
        char ch = s.charAt(x);
        if(ch >= 'a' && ch <= 'z')
            str += "" + (char)(ch - 32);
        else
            str += "" + ch; 
    }
    return str;
}

:

System.out.println(toUpperCase("aAbBcC"));

:

AABBCC
+1

C'mon , Java 8 !

/**
 * Converts an all-lowercase String to
 * uppercase. Retains only spaces, any
 * other characters will be lost.
 */
public static String toUpperCase(String s) {
    int diff = 'a' - 'A'; // 32

    return s.chars()
            .filter(c -> c >= 'a' && c <= 'z' || c == ' ')
            .mapToObj(c -> String.valueOf((char) (c - (diff))))
            .collect(Collectors.joining());
}
+1

toUpperCase(), ASCII, , 32.

'a' = 97, 'A' = 65
'b' = 98, 'B' = 66
...
'z' = 122, 'Z' = 90

public static int DIFF = 'a' - 'A'; // 32

public static String toUpperCase(String str) {
    StringBuilder sb = new StringBuilder();
    for (char c : str.toCharArray()) {
        if (Character.isLowerCase(c)) {
            sb.append(String.valueOf((char)(c - DIFF)));
        } else {
            sb.append(c);
        }
    }
    return sb.toString();
}
0
source

try:

public static String toUpperCase(String str) {
        String result = "";
        for (int i = 0; i < str.length(); i++) {
            int v = str.charAt(i);
            if (v > 96 && v < 123) {
                v -= 32;
            }
            result+=(char)v;

        }
        return result;
    }
0
source

Source: https://habr.com/ru/post/1663789/


All Articles