Kleinbuchstaben zählen

Hallo,

das Programm soll Kleinbuchstaben, die man eingibt oder die von einer .txt-Datei eingelesen werden zählen, aber ich erhalte immer "0" als Antwort.

Java:
import IOulm.*;

public class CountChar {
public static void main (String[] args) {
int b=0;
char KB=' ';

while(Urc.readChar()){
KB=Urc.getChar();
}
if (Character.isLowerCase(KB))
b=b+1;

System.out.println(b);
}
}
 

ssoul26

Bekanntes Mitglied
Weil die while geschlossen wird und du somit nur das letzte Char liest. Verändere die Position deiner geschweiften Klammern.
 
Ich muss leider nochmal "öffnen":

In der nächsten Teilaufgabe wird gefordert die Kleinbuchstaben einzeln aufzuzählen. Also nachdem Schema:

a: 1x
b: 11x
c: 0x
d: 4x
...
(Der Text entählt 1'a', 11'b', 0'c', 4'd',...)

Hier mein Quellcode dazu:
Java:
import IOulm.*;

public class CountChar {
public static void main (String[] args) {
int b=0, i=0;
char KB=' ';


while(Urc.readChar()){
KB=Urc.getChar();

if (Character.isLetter(KB)) { //Buchstabe
         i = (int) KB;
		 
if (Character.isLowerCase(KB))
System.out.println(i);
b=b+1;
for(char a = 'a', z = 'z'; a <= z; a++) 
System.out.println(a+": "+b+"x");
}

}
}
}

int anzahl[] = new int[122];
for(int i = 0; i< allezahlen.size; i++)
{
anzahl[allezahlen.get(i)]++;
}

for(int j = 1; j <= anzahl.length;j++)
{
System.out.println("zahl: " + j + " anzahl: " + anzahl[j-1]);
}

Mit
Java:
if (Character.isLowerCase(KB))
System.out.println(i);
b=b+1;
for(char a = 'a', z = 'z'; a <= z; a++) 
System.out.println(a+": "+b+"x");

geb ich die Buchstaben von 'a' bis 'z' aus. Dementsprechend soll später 'b' die Anzahl sein.

Mein aktueller Ansatz ist wahrscheinlich zu kompliziert gedacht: Ich will die Buchstaben in ASCII-Nummern umwandeln (97-122), diese zählen und dann wieder in Buchstaben umwandeln.
Java:
if (Character.isLetter(KB)) { //Buchstabe
         i = (int) KB;

wandelt die Buchstaben in ASCII-Nummern um.
 
Zuletzt bearbeitet:

Templarthelast

Bekanntes Mitglied
Da kanst du ja mir dem char Datentyp arbeiten. d.h. Falls ein Buchstabe klein ist, wird er zum char umgewandelt.

Java:
String test = "hallo test";
int anzahl[] = new int[26];
for(int i =0; i < test.length(); i++) {
	if(Character.isLetter(test.charAt(i)) && Character.isLowerCase(test.charAt(i))) {
                anzahl[Character.getNumericValue(test.charAt(i))-10]++;
		System.out.println("Buchenstabenanzahl von \""+test.charAt(i)+"\" wurde auf "+anzahl[Character.getNumericValue(test.charAt(i))-10]+" erhöht.");
		
		
		
	}
}
 

ssoul26

Bekanntes Mitglied
Leg dir ein int [] Array der Größe 26 an. Dann hol dir das Char und führe modulo 97 (da 'a' bei 97 liegt) aus. Das int [] array an der Stelle (also Ergebnis des Modulo) inkrementierst du dann um eins.
-> Kleinbuchstaben liegen zwischen 97 und 122. Tippst du jetzt z. B 'b' (also 98 (ASCII)) dann solltest du wie folgt vorgehen.
1. int ch= 'b'; -> 98
2. array[ch%26]= array[ch%26]+1; // 98 % 97= 1, also -> b
3. beim auslesen einfach den ArrayIndex + 97 auf Char casten. Dann hast du erst einmal den Buchstaben und der Inhalt des Array an dieser Stelle gibt dir an, wie oft es vorkam.
Beachte: Führe die Überprüfungen nur dann aus, wenn die Eingabe zwischen >=97 und <=122 liegt.
 
Da kanst du ja mir dem char Datentyp arbeiten. d.h. Falls ein Buchstabe klein ist, wird er zum char umgewandelt.

Java:
String test = "hallo test";
int anzahl[] = new int[26];
for(int i =0; i < test.length(); i++) {
	if(Character.isLetter(test.charAt(i)) && Character.isLowerCase(test.charAt(i))) {
                anzahl[Character.getNumericValue(test.charAt(i))-10]++;
		System.out.println("Buchenstabenanzahl von \""+test.charAt(i)+"\" wurde auf "+anzahl[Character.getNumericValue(test.charAt(i))-10]+" erhöht.");
		
		
		
	}
}

Dein ist schon ganz gut, aber ich brauch noch ne Möglichkeit den
Code:
String Test
der Standardeingabe zuzuordnen. Hab es mit

Java:
import java.util.Scanner;
[...]
public static void main(String[] args)
	{
		String test = Eingabe();
[...]
}


static String Eingabe()
	{
		Scanner s = new Scanner(System.in);
		String text = s.next();
		return text;
	}
[...]

versucht, aber das hat nicht so recht geklappt.
 

Templarthelast

Bekanntes Mitglied
Java:
	try{
	    BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
	    String s = bufferRead.readLine();
 
	   
	}
	catch(IOException e)
	{
		e.printStackTrace();
	}
 
Danke für die Hilfe, hier übrigens die Lösung:

Java:
import IOulm.*;
import java.util.Formatter;

public class CountChar{
   public static void main(String[] args) {
      /*abc[0] repraesentiert Anzahl von 'a';
        abc[1] repraesentiert Anzahl von 'b'...*/
      int abc[] = new int[26];
      Formatter f = new Formatter(System.out);
      
      while (Urc.readChar()) {
         char c = Urc.getChar();
         if (Character.isLowerCase(c)) {
            abc[c-97]++;
         }
      }

      for (int i=0; i<abc.length; i++) {
         f.format("%c: %3dx\n", (char)(i+97), abc[i]);
      }
   }
}
 
S

so0jvpwemm

Gast
Sowohl Deine als auch meine Lösung berücksichtigt keine Umlaute:
Java:
		String text = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor " +
				"invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam " +
				"et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem " +
				"ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod " +
				"tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam " +
				"et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.";
		
		int length = text.length();
		for(int i='a'; i<='z'; i++) {
			String letter = String.valueOf((char)i);
			text = text.replaceAll(letter, "");
			System.out.println(letter + ": " + (length - text.length()));
			length = text.length();
		}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J String-Objekte in Kleinbuchstaben überführen? Allgemeine Java-Themen 2
Fabiator Variablen Variablen Zählen Allgemeine Java-Themen 3
S Drools: Zählen wie oft ein Wert vorkommt Allgemeine Java-Themen 1
R Methoden Was fehlt mir bzw. muss ich bei der Methode countHarshabNumbers ändern damit ich die Harshad Zahlen im Intervall [51, 79] zählen kann? Allgemeine Java-Themen 19
A Binärer Suchbaum Knoten Zählen Allgemeine Java-Themen 4
L Menge der Buchstaben eines Textes zählen Allgemeine Java-Themen 3
J Rekursive Programmierung-Zählen von Ziffern Allgemeine Java-Themen 5
J Die Menge einer Zahl im Binärbaum zählen Allgemeine Java-Themen 7
N [stream-api] Parameter pro Typ zählen Allgemeine Java-Themen 1
B Counting Sort (Sortieren durch Zählen) Allgemeine Java-Themen 13
K Wörter in Strings zählen Allgemeine Java-Themen 7
D Fehlgeschlagene Logins zählen... Was ist sinnvoll? Allgemeine Java-Themen 2
R Zusammenhängende Werte in 2-dim. Array finden und zählen Allgemeine Java-Themen 3
P Werte in Array zählen und Summe der einzelnen Teile ausgeben Allgemeine Java-Themen 10
M Ein bestimmtes Wort in einem Text zählen (String in String) Allgemeine Java-Themen 9
B substring zählen Allgemeine Java-Themen 7
Landei Collections Word-Frequenzen zählen Allgemeine Java-Themen 7
C Mausklicks zählen (extern) Allgemeine Java-Themen 6
S Knoten zählen in einem Binärbaum Allgemeine Java-Themen 2
S erzeugte objekte zählen Allgemeine Java-Themen 3
H Zeitraum: Arbeitstage zählen Allgemeine Java-Themen 5
J String Wörter zählen Allgemeine Java-Themen 4
S Array: Anzahl Elemente mit best. Wert zählen Allgemeine Java-Themen 4
M Anwendung nur einmal starten / Zeichen in String zählen Allgemeine Java-Themen 7
G Dateien und Verzeichnisse in einem Verzeichnis zählen Allgemeine Java-Themen 9
2 Tage zwischen zwei Datumsdaten zählen Allgemeine Java-Themen 2
G Tage zwischen zwei Datumsdaten zählen Allgemeine Java-Themen 3
G arguemente einer Methode zählen? Allgemeine Java-Themen 19
X Strings aus einer ArrayList zählen Allgemeine Java-Themen 11
B Farben Zählen Allgemeine Java-Themen 17
S Methode zum Zählen von Buchstaben in Strings gesucht Allgemeine Java-Themen 11
I vergleich und zählen von Strings Allgemeine Java-Themen 7
C Objekte einer Klasse zählen Allgemeine Java-Themen 25
T Zeilen eines Projekts zählen lassen Allgemeine Java-Themen 14
M richtiges Ergebnis zählen und übergeben? Allgemeine Java-Themen 7
F Dateien in einem Ordner zählen Allgemeine Java-Themen 15
G ziffern zählen mit rekursiver methode Allgemeine Java-Themen 2
F Zählen wie oft Methode aufgerufen wurde Allgemeine Java-Themen 2
L Häufigkeit der Werte in Datei zählen! Heap Space beschränkt! Allgemeine Java-Themen 31
F Bestimmes zeichen im String zählen Allgemeine Java-Themen 34
G Dateien zählen im Verzeichnis Allgemeine Java-Themen 11
B Integer zählen bzw. speichern Allgemeine Java-Themen 3
S lines of code zählen Allgemeine Java-Themen 9
A Buchstaben zählen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben