Leerzeichen herausfiltern

Strim

Mitglied
Hi,
ich will ein Programm erstellen dass mir dei Anzahl der Leerzeichen aus einem Text liefert. Da ich noch Anfänger bin und die Anzahl der vorgegebenen Klassen und Methoden riesig ist, kenne ich mich nicht gut aus was es für Methoden für was gibt. Daher liegt das Nichtfunktionieren meines Programmes an meinem noch mangelnden Wissen der Syntax nehme ich an. Ich würde gerne wissen ob meine Grundidee korrekt ist, und wie ich die Syntax berichtige.

Java:
class leerzeichen {
public static void main (String [] args){

String text = "a b c d e f g";
char leer0 = ' ';
int leer1 = (int) leer0;
int anzahl;

for (i=0, i<text.length, i++){
if (i!= leer1) 
continue;
int anzahl = text.getLength();
System.out.println(" Anzahl der Leerzeichen: " + anzahl);
}
}
}

Freue mich über hilfe!
 
Zuletzt bearbeitet:
Java:
	public static void main(String[] args)
	{
		String test="a b c d e f ";
		
		for(int i=0;i<test.length();i++)
		{
				if(test.substring(i, i+1).equals(" "))
				{
					System.out.println("Leerzeichen gefunden");
				}
		}
	
	}
 
Eine wirkliche Grundidee kann ich nicht erkennen bzw. die Idee hinter manchen Codezeilen ist mir schleierhaft.
Grundsätzlich gibt es m.M. zwei Herangehensweisen:
Man iteriert über jeden Buchstaben des Textes und prüft, ob es sich um ein Leerzeichen handelt.
oder
Man nutzt eine der "Ersetzen" Methoden der Klasse String um alle Leerzeichen im Text zu "löschen" und vergleicht die Textlänge vorher mit der danach.

Wenn man will kann man auch die "Such"-Methoden der Klasse String verwenden, um sich von einem Leerzeichen zum nächsten zu hangeln.

Grundsätzlich liefert String ausreichend Methoden, um das Vorhaben umzusetzen.
 
Meine Idee war eigentlich, jeden Buchstaben der Reihe nach zu kontrollieren, aber weiterzuspringen falls der kontrollierte Buchstabe bzw das kontrollierte Zeichen kein Leerzeichen ist.

Du hast jetzt ein paar Herangehensweisen aufgezählt aber welche Methoden gehören denn dazu?

Danke!
Strim
 
Die Leerzeichen rausnehmen machst du mit string.replace(" ", "");
also:

Java:
String string = "a b c d e f g";
int before = string.length();
int after = string.replace(" ", "").length();
int spaces = before - after;
System.out.println(spaces);
Das sollte in den meisten Fällen genügen, deine Herangehensweise wäre folgende:

Java:
String string = "a b c d e f g";
char space = ' ';
int anzahl = 0;
for(int i=0; i<string.length(); i++)
    if(string.charAt(i) == space)
        anzahl++;
System.out.println(anzahl);
 
Java:
	public static void main(String[] args)
	{
		String test="a b c d e f ";
		
		for(int i=0;i<test.length();i++)
		{
				if(test.substring(i, i+1).equals(" "))
				{
					System.out.println("Leerzeichen gefunden");
				}
		}
	
	}

Besser:
Code:
if (test.charAt(i) == ' ')

1. Jedes Zeichen prüfen
2. Mittels Regex die matchs zählen
3. Leerzeichen ersetzen und Längen vergleichen
4. Alle Nicht-Leerzeichen ersetzen und Länge verwenden
5. ...
 
Vielleicht ist das Thema noch aktuell:

Java:
        String s = "a b c d e f g";

        int cnt = 0;
        for (char c : s.toCharArray()) {
            if (c == ' ') {
                cnt++;
            }
        }
        System.out.println("cnt = " + cnt);

        cnt = s.replaceAll("[^ ]+", "").length();
        System.out.println("cnt = " + cnt);

Falls toCharArray() zu langsam sein sollte, dann einfach mit charAt(int index) jedes einzelne Zeichen
 

Zurück
Oben