CodeGym
Aktion
CodeGym University
Lernen
Kurs
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan für einen Tritt in den Hintern
Community
Benutzer
Forum
Chat
Artikel
Erfolgsstorys
Aktivität
Rezensionen
Abonnements
Helles Design
Jetzt lernen
  • Alle Fragen
Pablo
Level 16
Bamberg
  • 21.04.2020
  • 730Aufrufe
  • 4Kommentare

Please Help

Frage zur Aufgabe Buchstabenanzahl
Java Syntax,  Level 10,  Lektion 11
Gelöst

Gib 10 Zeichenkette über die Tastatur ein und zähle die Anzahl der verschiedenen Buchstaben darin (für die 26 Kleinbuchstaben des englischen Alphabets). Zeige die Ergebnisse auf dem Bildschirm in alphabetischer Reihenfolge an.

Beispiel-Ausgabe:
a 5
b 8
c 3
d 7
e 0
…
z 9

Anforderungen:
  • Das Programm muss 10 mal Daten von der Tastatur lesen.
  • Das Programm muss Text auf dem Bildschirm ausgeben.
  • Der angezeigte Text muss aus 26 Zeilen bestehen.
  • Jede Ausgabezeile muss einen Buchstaben des englischen Alphabets, ein Leerzeichen und die Anzahl der gefundenen Buchstaben in den eingegebenen Zeilen enthalten.
package de.codegym.task.task10.task1012; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; /* Buchstabenanzahl */ public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // Alphabet String abc = "abcdefghijklmnopqrstuvwxyz"; char[] abcArray = abc.toCharArray(); ArrayList<Character> alphabet = new ArrayList<>(); for (char buchstabe : abcArray) { alphabet.add(buchstabe); } char[][] solution = new char[26][2]; for(int i=0;i<26;i++) { solution[i][0]=abcArray[i]; solution[i][1]='0'; } // Zeichenketten einlesen ArrayList<String> liste = new ArrayList<>(); for (int i = 0; i < 10; i++) { String s = reader.readLine(); liste.add(s.toLowerCase()); String temp = liste.get(i); for(int a=0;a<temp.length();a++) { char c = temp.charAt(a); for(int p=0;p<abcArray.length;p++) { if(c==abcArray[p]) { solution[p][1]++; } } } } int u =0; for(int i=0;i<solution.length;i++) { System.out.print(solution[i][u]+" "); u=1; System.out.println(solution[i][u]); u=0; } // schreib hier deinen Code } }
0
Kommentare (4)
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Pablo
Level 16 , Bamberg, Germany
22 April 2020, 10:44
I just changed the char[][] array to a int[] array for counting the amounts of letters but it still gives me the same feedback. My code now is creating a int[] array of 26 length and filling every element with 0. Later every word is checked for the inserted laters and it adds +1 to the corresponding index. int[] solution = new int[26]; for(int i=0;i<26;i++) { solution[i]=0; } ArrayList<String> liste = new ArrayList<>(); for (int i = 0; i < 10; i++) { String s = reader.readLine(); liste.add(s.toLowerCase()); String temp = liste.get(i); for(int a=0;a<temp.length();a++) { char c = temp.charAt(a); for(int p=0;p<abcArray.length;p++) { if(c==abcArray[p]) { solution[i]++; } } } } for(int i=0;i<solution.length;i++) { { System.out.print(abcArray[i]+" "); System.out.println(solution[i]); }
0
dnlklnhfr
Level 30 , Karlsruhe, Germany
22 April 2020, 17:59
that's just because of a copy&paste-error in line 40 (of original code). you should use "p" instead of "i" as array-index-variable
0
Pablo
Level 16 , Bamberg, Germany
23 April 2020, 10:00
Tank you very much. the I was the mistake.
0
dnlklnhfr
Level 30 , Karlsruhe, Germany
22 April 2020, 08:08
It might be tempting to put both, characters and counts, into the same array and at a first sight miraculously it seems to work, but this is considered to be more a kind of misuse of a datatype. Try not to use a char for counting the occurrences of the characters (line 23), then it will work.
0
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe zu Aufgaben
  • Preise
  • Spieleprojekte
  • Java Syntax
Community
  • Benutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsstorys
  • Aktivität
  • Affiliate Program
Unternehmen
  • Über uns
  • Kontakt
  • Rezensionen
  • Medien
  • CodeGym im Bildungsbereich
  • FAQ
  • Support
CodeGym CodeGym ist ein Java-Tutorial zum Lernen von Java von Grund auf. Dieser Kurs ist perfekt dafür geeignet, Java von Beginn an zu meistern. Er enthält über 1200 Aufgaben mit Sofortüberprüfung und grundlegende Theorie zu den Java-Grundlagen. Damit auch du bei deinem Kurs erfolgreich bist, haben wir eine ganze Reihe motivierender Inhalte: Quizfragen, Programmierprojekte, Inhalte zu effizientem Lernen und zum Berufseinstieg als Java-Entwickler.
Folgen
Sprache der Oberfläche
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
MastercardVisa
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
This website uses cookies to provide you with personalized service. By using this website, you agree to our use of cookies. If you require more details, please read our Terms and Policy.