Wie kann ich mit der Funktion ‚toUpperCase()‘ in einem String alle zwei Buchstaben gross machen?

1 Antwort

Iteriere mit einer Schleife durch den String und konvertiere dabei die entsprechenden Zeichen. Da der Originalstring unveränderlich ist, musst du dir für das Ergebnis einen neuen String zusammenbauen.

Das folgende Beispiel zeigt, wie jedes Zeichen eines Strings in Großbuchstaben konvertiert werden kann. Du kannst es als Grundlage nehmen, um es für deine Aufgabe umzubauen.

String word = "Some word";
char[] letters = word.toCharArray();

for (int index = 0; index < letters.length; ++index) {
  letters[index] = Character.toUpperCase(letters[index]);
}

String modified = new String(letters);
tetrotas 
Fragesteller
 05.03.2022, 18:26

Funktioniert bei mir nicht wirklich. Ich habe eine ‚wahrscheinlich‘ vereinfachte Form von JavaScript. Schau mal hier.

0
regex9  05.03.2022, 19:24
@tetrotas

Da deine Frage mit Java getaggt ist, habe ich mich inhaltlich auch auf diese Programmiersprache bezogen. Zu JavaScript gibt es Unterschiede, wie bspw. die Art, wie die toUpperCase-Methode angewandt wird (sie erhält in JavaScript kein Argument, sondern wird über das String-Objekt aufgerufen).

Aber dein Versuch hat auch logische Fehler.

Du veränderst den Wert von resultat nicht, es bleibt immer ein leerer String. Der konvertierte Buchstabe muss an den Wert angehängt werden.

resultat += text[i].toUpperCase();

Ein dritter Fehler liegt im Verhalten des Indexwerts. Aktuell würdest du z.B. aus dem Wort weintraube die Buchstaben i, t, a und b herausgreifen, sie konvertieren und (nach obiger Korrektur) zusammenfügen. Die anderen Buchstaben siebst du aus. Du müsstest dieses Verhalten ändern, bspw. indem du erst prüfst, ob ein Index un-/gerade ist und dann basierend auf dem Ergebnis konvertierst.

Achte bei deiner Schleife zudem darauf, mit dem Index nicht außerhalb des verfügbaren Bereichs zu kommen. Wenn dein Wort bspw. zehn Buchstaben hat, zählt dein Index derzeit die Werte 2, 4, 6, 8, 10, obwohl der gültige Bereich nur zwischen 0 und 9 (jeweils inklusiv) liegt.

1
tetrotas 
Fragesteller
 06.03.2022, 09:52
@regex9

Vielen Dank!! Jetzt hab ich es!

1