Umwandlung Großbuchstaben

Aufgabe: Umwandlung in Großbuchstaben
Schreiben Sie eine Methode inGrossbuchstaben, die ein char-Array entgegennimmt. Die Methode soll alle Kleinbuchstaben in dem char-Array in Großbuchstaben umwandeln und zurückgeben. Alle anderen Zeichen sollen unverändert bleiben.

Hinweis: Nehmen Sie den ASCII-Code/Unicode zu Hilfe.

Das wäre die Aufgabe, hat wer dazu eine Idee? Oder eher nicht?

Teile uns deine Gedanken dazu mit.

Es muss ja ein Konzept geben, dass einen Stoff beibringt und dann eine Aufgabe stellt.

Vielleicht hilft ja schon das:

 char A = ‚a‘ - 32 ;

Mit einem Switch Case Fall eventuell oder abgleich mit einer If Abfrage?

Ja, das wäre beides eine Idee.

Gruß,
Martin

Was meinst du wäre sinnvoller?

Sinnvoller wäre, wie es die Aufgabe sagt, die Verwendung der ASCII Tabelle.

Ich habe auch ein Beispiel gezeigt.

„If“ und Switch (Ist eigentlich ein if, if else, else Konstrukt) und dein vermeidlicher Lösungsweg damit, ist im Wesentlchen wenig wert, denn JEDES Programm kann auf diese Weise am Ende implementiert werden. Du solltest dringend die Grundlagen erlernen und verstehen und nicht in den Foren nach fertigen Lösungen suchen.

Wenn du ein IT-Studium belegst, dann wirst du damit nicht weit kommen, wie man jetzt schon sieht.

Ganz ruhig martin123. Jeder hat mal irgendwo angefangen.

@bibi98
Also ein char ist zwar ein Buchstabe auf den ersten Blick, in Wirklichkeit wird der Buchstabe aber durch eine Zahl repräsentiert.

int zahl = 'A';
System.out.println("" + zahl);

Probier das mal aus.

Wenn du jetzt mal in eine ASCII Tabelle schaust, siehst du dass die Zahl 65 für Groß-A steht. Und 90 für Groß-Z. Und wenn du noch genauer hinschaust, siehst du dass sich alle Großbuchstaben zwischen 65 und 90 befinden.
Dann noch einen Blick wo sich die Kleinbuchstaben befinden und dann brauchst du nur noch dein if

1 Like

Wir können das gerne mal gemeinsam Stück für Stück zusammenbauen.

Ich zeige mal meine main()-Methode und du kannst erstmal als Antwort die Methodenrümpfe mit den Parameterlisten der benötigten Methoden dazusetzen.

   public static void main(String[] args) {
      char a = 'a';
      char b = 'B';
      char[] c = {'s', 'u', 'p', 'e', 'r', '!'};
      System.out.println(ChangeCase.toUpperCase(a));
      System.out.println(ChangeCase.toUpperCase(b));
      System.out.println(ChangeCase.toUpperCase(c));
   }

Ich kann die Grundlagen, es geht mir mehr darum, es einfacher bzw sinnvoll zu implementieren, da ich es für meine Sichtweise manchmal zu kompliziert mache.
Aber danke für deine Zuversicht, das ich es nicht drauf habe​:wink:

Wenn Du nur eine Lösung brauchst, dann kann ich meine ja kommentarlos anbieten.

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

Wie sieht Deine Lösung aus?

Ich lade es nachher mal hoch, habs etwas anders aber trotzdem eine gute Lösung

Das was du geschrieben hast funktioniert allerdings nicht…

Machst du in deiner for-Schleife einfach eine eingabe[i] statt eingabe.getCharAt(i) oder? Also würde das funktionieren?

Wo ist Deine Fehlermeldung?

Wenn du den von mir geposteten Code in eine Klasse namens ChangeCase einbaust und die main()-Methode startest, sollte das schon funktionieren.
Wenn du die Eingabe von der Konsole einliest, musst du den String zunächst in ein char-Array umwandeln, weil die Methoden mit char arbeiten.
Starte erst mal die Klasse über die main()-Methode und berichte, anschließend zeigst du mal deinen Code, sonst bringt das hier nichts. Ich habe keine Glaskugel… :wink:

BÄM! In your face :smiley: Versuch’ mal, eine allgemeingültige Methode toUpperCase zu schreiben. Viel Glück…

Ich kann die Grundlagen, es geht mir mehr darum, es einfacher bzw sinnvoll zu implementieren, da ich es für meine Sichtweise manchmal zu kompliziert mache.

Es liegt bei dir, den geeigneten Zeitpunkt auszuwählen, wann du deinen Code postest:

  • Wenn du fertig bist? Dann hast du vielleicht viel Zeit mit etwas verschwendet, was in sehr kurzer Zeit sehr einfach gelöst werden köönnte.
  • Nie? Dann musst du davon ausgehen, dass Leute dir vorwerfen, dass du keine Ahnung hast, und hier nur schnell und einfach Lösungen bekommen willst.

Das beste liegt, wie so oft, irgendwo dazwischen…

Der kann den char nicht umwandeln, ist ein Syntax error, record wird benötigt…

Code und genaue Fehlermeldung?

Da fehlt eindeutig ein Kurs zur effektiven Kommunikation im Curriculum. Hier mal der Klassiker: How To Ask Questions The Smart Way