Substringsuche + Ersetzung

Also wenn das die Versionsausgabe des aktuell von dir genutzen Compilers ist, sollte es funktionieren. Ich kann es jedenfalls ohne Probleme kompilieren.
Du hast keine andere Java Installation auf deinem PC und kompilierst u.U mit der falschen Version?
Kann natürlich auch sein, das du beim Kopieren eine Klammer vergessen hast..

*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:
Hallo zusammen,

ich habe versucht den Code etwas abzuändern. Was ich erreichen will, ist dass auch folgendes erkannt wird:

Inhalt Datei A:
575757

Inhalt Datei B:
0575757

Momentan wird der String nur gefunden, wenn dieser mit der Suchdatei komplett übereinstimmt.

Was ich ausprobiert habe:

Code:
 private void printSimilarities() {
    System.out.println("\nSIMILARITIES:");
    int startCnt = 0;
    int similCnt = 3;
    for (String intA : listA.keySet()) {
      for (String intB : listB.keySet()) {

        if (intA.substring(startCnt, similCnt).equals(intB.substring(startCnt, similCnt))) {


		int substrLength = 5;
		int startPoint = 0;
		while (true) {
			if ((startPoint + substrLength) > intA.length() || (startPoint + substrLength) > intB.length())
			break;
	else {
    	String substrA = intA.substring(startPoint, startPoint + substrLength);
    	String substrB = intB.substring(startPoint, startPoint + substrLength);
    	if (substrA.equals(substrB)) {
		System.out.println("Ähnlichkeit gefunden:");
      		System.out.println(substrA);
		}
  	}

  	startPoint++;
	}
		System.out.println(intA + "\t'" + intA.substring(startCnt, similCnt) + "'");

	}
          
      }
    }

Klappt aber nicht.
Kann mir jemand vielleicht helfen?

Gruß
Alex
 
Hui das ist aber wirklich sehr kompliziert geworden bei dir.

Mit contains oder indexOf ist es doch ein wenig einfacher. Zumindest wenn die 5 Stellen zusammenhängend sein sollen?
Java:
int similCnt = 5;
for(String b : dateiB){
  for(String a : dateiA){
    if(a.equals(b){
      return true;
    }
    else {
      for(int i = 0; i < a.length-similCnt; i++){
        String sub = a.substring(i,i+similCnt);
        //Prüfe ob der 5 Zeichen lange Substring aus Datei a in dem String von Datei b vorkommt.
        if(b.contains(sub){//oder b.indexOf(sub) != -1 für < 1.5
          return true;
        }
      } 
    }
}

Das ist nur ein Java-Pseudocode der nicht unbedingt so kompilieren muss. Nur vom Ansatz her :)
 
Zurück