2 Strings Prozentual vergleichen [die Zweite]
kevinwiedener
- javascript
Hi Jungs, ich habe folgenden Code mit Hilfe aus diesem Forum in meinem Programm, der 2 Strings miteinander vergleichen soll:
[...]
for(var e = 0; e <= 1; e++) {
CheckString = CheckArray[e];
longest_string_length = (Aussage.length > CheckString.length) ? Aussage.length : CheckString.length;
percent_of_conformity = 0;
for(i = 0; i < longest_string_length; i++) {
if(Aussage.substr(i,1) == CheckString.substr(i,1)){
percent_of_conformity++;
}
}
percent_of_conformity = parseInt((percent_of_conformity/longest_string_length)*10000)/100;
if (percent_of_conformity > 65) {
count++;
document.writeln("<a href="" + CheckString + "">" + CheckString + "</a><br>");
}
}
if (count == 0) {
document.writeln("Keine Übereinstimmungen");
}
So, was ich nun festgestellt habe, ist folgendes:
Wenn ich nun den String Aussage mit folgendem fülle:
abcdefghijklmnopqrstuvwxyz
und CheckString[0] mit
bcdefghijklmnopqrstuvwxyz
dann bekomme ich als Ergebnis 0%, was ja nicht richtig ist.
Oder z.B. bei abdefghijklmnopqrst (Aussage) und abcdefghijklmnopqrst (CheckString[x]), da müsste ja auch was um die 90% rauskommen.
Gibt es keine Funktion wie bei php, oder kennt niemand einen nahezu perfekten Code um zwei Strings auf "Gleichheit" zu prüfen? D.h. z.B. dass auch bei obigem Beispiel 95 oder 90 Prozent rauskommen.
Kann mir da jemand helfen?
Ich bitte Euch vielmals darum
Danke
Kevin
Was ich weiter entdeckt habe:
Es gibt zwei Methoden zwei Strings zu vergleichen:
Einmal die Oliver [1993]-Methode, die allerdings etwas schlechter ist, und die Levenshtein-Methode, die soll genial sein.
Die kann man doch mit Sicherheit in JavaScript übertragen, bzw. es gibt sie schon, oder?
Kevin
Moin!
Hi Jungs, ich habe folgenden Code mit Hilfe aus diesem Forum in meinem Programm, der 2 Strings miteinander vergleichen soll:
Doppelt posten ist hier nicht gern gesehen, vor allem, da dein alter Thread noch so klein und unscheinbar ist und somit noch ausgebaut werden kann.
Javascript-Funktion gelöscht
Wenn du deinen alten Thread benutzt hättest, wäre das Posten dieser Funktion garnicht notwendig gewesen, weil alle Teilnehmer sie hätten nachlesen können. ;) Nur mal so als Begründung, warum doppelt posten keine gute Idee ist.
So, was ich nun festgestellt habe, ist folgendes:
Wenn ich nun den String Aussage mit folgendem fülle:
abcdefghijklmnopqrstuvwxyz
und CheckString[0] mit
bcdefghijklmnopqrstuvwxyz
dann bekomme ich als Ergebnis 0%, was ja nicht richtig ist.
Naja, gemäß der Funktion ist es richtig. Das war, was Norbert programmiert hatte.
Oder z.B. bei abdefghijklmnopqrst (Aussage) und abcdefghijklmnopqrst (CheckString[x]), da müsste ja auch was um die 90% rauskommen.
Gibt es keine Funktion wie bei php, oder kennt niemand einen nahezu perfekten Code um zwei Strings auf "Gleichheit" zu prüfen? D.h. z.B. dass auch bei obigem Beispiel 95 oder 90 Prozent rauskommen.
Genau diese Frage hat Mulder dir in dem anderen Thread gestellt. Warum hast du sie ignoriert?
Natürlich gibts diverse Möglichkeiten, Übereinstimmungen von einem String mit einem anderen String irgendwie zu überprüfen. Nur dazu mußt du eben sagen, was für Übereinstimmungen du willst - das kann man nicht raten, denn sowas hängt von der Aufgabenstellung ab.
Gehe also bitte zurück zu deinem ersten Thread und beantworte Mulder seine Frage: </?m=51835&t=9377>. Und dann gehts ausschließlich dort weiter. Nur weil die Frage weiter unten steht, wird sie noch lange nicht ignoriert. Hier werden in der Regel alle Fragen beantwortet, solange sie noch nicht im Archiv gelandet sind und Diskussionsbedarf besteht.
- Sven Rautenberg