substring zählen

Bonsai

Bekanntes Mitglied
Hallo Community,

ich habe folgenden String gegeben:"abc def abc ghi abc jkl abc mno abc"

Jetzt würde ich gern zählen wollen wie oft abc vorkommt. Ich weiß dass das auf alle fälle mit der funktion charAt() funktioniert, aber wenn mann jetzt einen längeren substring zählen wöllte, würde es mit charAt() einfach viel zu lang werden. Jetzt wollte ich fragen ob es dafür eine elegantere Lösung gibt?

Grüße
Bonsai
 
Man könnte mit der split-Methode von String den String an den Leerzeichen auftrennen und in ein String Array zerlegen. Danach müsste man nur durch das Array iterieren und die Werte überprüfen.
 
wenn ich den bestimmten string im array zählen möchte, dann zählt er nicht hoch.

Java:
String str = "abc def abc ghi abc jkl abc mno abc";
		String[] strarray = str.split(" ");
		line++;
		for(int i = 0; i<=11; i++){
			str1=strarray[i];
			System.out.println(str1);
			str1=str1.trim();
			if(str1=="abc"){
				count++;
				System.out.println(count);
}
 
Objekte zu denen auch Strings gehören vergleicht man mit
Code:
equals(...)
auf Gleichheit, mit
Code:
==
vergleicht man auf Identität.
 
ich würde es ggf. mit indexOf machen.
die frage ist wenn
Code:
String str = "abcdefabcghiabcjklabcmnoabc"
gegeben ist, was soll er dann machen? Mit meiner Lösung wird trotzdem gezählt.

Java:
String str = "abc def abc ghi abc jkl abc mno abc";
String search = "abc";
int counter = 0;
int pos = 0;
do{
	pos = str.indexOf(search, pos);
	if (pos > -1){
		counter++;
		pos++;
	}else{
		break;
	}
}while(true);
System.out.println("Anzahl: " + counter);
 
Zuletzt bearbeitet:
danke das du das erwähnt hast, allerdings dteht abc für ein wort. von daher wird es nicht vorkommen, jedenfalls in meinem fall nicht, dass der string ohne leerzeichen ist. Aber ich denke falls das problem jemand hat und zufällig das thema liest wird es sicher gut passen 🙂
 

Zurück
Oben