Kann mir jemand dieses einfache Java Programm erklären?

3 Antworten

Das Programm zählt die Häufigkeit der Kleinbuchstaben a-z in einem String (funktioniert auch nur, wenn str nur aus Kleinbuchstaben besteht, sonst wirft Java eine Exception, weil man einen Index anspricht, der nicht existiert).

  • freq[i] steht für die Anzahl des i-ten Buchstaben im Alphabet (bei 0 angefangen zu zählen). Am Anfang enthält es nur Nullen.
  • In der Schleife wird jeder Buchstabe von str durchgegangen und gecheckt, ob es tatsächlich ein Buchstabe ist - wenn ja wird die Anzahl am Index des Buchstaben (s.u.) um eins erhöht.
  • Das ganze macht man für jeden einzelnen Buchstaben in str.
  • Zweite for-Schleife: Hier wird freq jetzt von hinten durchgegangen und jeder Buchstabe so oft ausgegeben, wie er in str vorkommt.

Zum Index des Buchstaben: Die Idee ist, dass die Anzahl von a an Stelle 0, die von b an Stelle 1, ..., die von z an Stelle 25 steht. In Zeile 8 möchte man jetzt genau den Wert eines bestimmten Buchstaben im Array um eins erhöhen. Dafür nimmt man sich den Charcode (str.charAt(i) gibt dir einen char, der aber auch als Zahl interpretiert werden kann) und zieht 97 von ihm ab.

Warum 97? Weil 97 der Charcode von a ist (damit ist 98 der von b, 99 der von c, ... und so erreicht man, dass die technische Nummerierung in Form von Charcodes zwischen 97 (a) und 122 (z) auf das Array mit Indizes von 0 bis 25 gespiegelt wird.

Hier:

str: hallowelt
Ausgabe: wtolllhea

LG

Woher ich das weiß:Berufserfahrung – Software-Entwicklung
  1. das Ding zählt ersichtlich die Anzahl der Klein-Buchstaben „a bis z“, die in dem String str vorkommen, und gibt sie dann aus...
  2. wenn in str jedoch ein Groß-Buchstabe vorkommt, dann dürfte es zu ner Range Exception kommen... kicher
Woher ich das weiß:Studium / Ausbildung
Gigant12 
Fragesteller
 14.06.2020, 19:48

Hey kannst du mir das bitte genauer erklären also zeile für zeile ? Wäre mega nett. Bin gerade noch Einsteiger und möchte mehr lernen...

0
RIDDICC  14.06.2020, 19:49
@Gigant12
  1. och
  2. frag doch lieber konkrete Fragen...
  3. was genau verstehst du denn nicht?
  4. verstehst du denn, was es bedeutet, eine „public static void main“ Methode zu haben?
0
Gigant12 
Fragesteller
 14.06.2020, 19:52
@RIDDICC

ne also im grunde genommen verstehe ich gar nichts wirklich. Also wäre echt mega nett wenn du bei Z.3 anfangen könntest... 😅

0
RIDDICC  14.06.2020, 19:53
@Gigant12

lol... nee... das macht keinen Sinn... lies lieber in deinem Lehrbuch nach... :)

0

Es wird gezählt, welcher Buchstabe wie oft im String str vorkommt. (wobei das nur bei Kleinbuchstaben nicht crasht)

Anschließend werden alle Zeichen ausgegeben, jedoch alphabetisch absteigend und jeweils so oft, wie sie im String vorkommen.

Woher ich das weiß:Studium / Ausbildung – Datenverarbeitungs-Kfm, Hobby- und Profi-Programmierer
Gigant12 
Fragesteller
 14.06.2020, 19:49

Hey kannst du mir das bitte genauer erklären also zeile für zeile ? Wäre mega nett. Bin gerade noch Einsteiger und möchte mehr lernen...

0