Kleinbuchstaben oder Großbuchstaben verwandeln

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen

Java bietet bereits allgemein gültige, fertige Methoden an, um Groß- in Kleinbuchstaben oder Klein- in Großbuchstaben zu verwandeln.

Aber wie könnte man das auf Einsteiger-/Student-Niveau selbst implementieren? Das versucht folgender Code erklären:

public class ChangeCase {

   /**
    * Verwandelt Klein- in Großbuchstaben. Zahlen und Sonderzeichen bleiben unbehandelt.
    * @param c das zu untersuchende Zeichen
    * @return das umgewandelte Zeichen, wenn es ein Kleinbuchstabe war
    */
   public static char toUpperCase(char c) {
      if(c >= 'a' && c <= 'z') {
         return c-=32;
      }
      return c;
   }

   /**
    * Verwandelt Groß- in Kleinbuchstaben. Zahlen und Sonderzeichen bleiben unbehandelt.
    * @param c das zu untersuchende Zeichen
    * @return das umgewandelte Zeichen, wenn es ein Großbuchstabe war
    */
   public static char toLowerCase(char c) {
      if(c >= 'A' && c <= 'Z') {
         return c+=32;
      }
      return c;
   }   

   /**
    * Verwandelt die im char-Array enthaltenen Klein- in Großbuchstaben.
    * Zahlen und Sonderzeichen bleiben unbehandelt.
    * @param c das zu untersuchende char-Array
    * @return das umgewandelte char-Array
    */
   public static char[] toUpperCase(char[] c) {
      for(int i = 0; i < c.length; i++) {
         c[i] = toUpperCase(c[i]);
      }
      return c;
   }

   /**
    * Verwandelt die im char-Array enthaltenen Groß- in Kleinbuchstaben.
    * Zahlen und Sonderzeichen bleiben unbehandelt.
    * @param c das zu untersuchende char-Array
    * @return das umgewandelte char-Array
    */
   public static char[] toLowerCase(char[] c) {
      for(int i = 0; i < c.length; i++) {
         c[i] = toLowerCase(c[i]);
      }
      return c;
   }   
   
   public static void main(String[] args) {
      char a = 'a';
      char b = 'B';
      char[] c = {'s', 'u', 'p', 'e', 'r', '!'};
      char[] d = {'S', 'U', 'P', 'E', 'R', '!'};
      System.out.println(ChangeCase.toUpperCase(a));
      System.out.println(ChangeCase.toUpperCase(b));
      System.out.println(ChangeCase.toUpperCase(c));
      System.out.println(ChangeCase.toLowerCase(d));
   }
}