.NET C# Java Javascript Exception

 | 
Frage stellen Fragen Themen Mitglieder Abzeichen RSS-Feed
2
Ich will zwei Strings auf Ähnlichkeit vergleichen. Bevor ich das tu will ich sie aber normalisieren (ich hoffe ich verwende hier den richtigen Begriff). D.h. ich will aus den Strings alle Sonderzeichen entfernen, ins Lowercase umwandeln, unnötige Whitespaces entfernen... Dafür gibt es doch sicherlich eine Library/Funktion in Java.
09.12.09
ermin 1,2k 1 6
Kommentieren - Für Rückfragen oder Anmerkungen
4 Antworten
3
Um Sonderzeichen zu entfernen, würde auch ich mal einen Blick auf Regular Expression, kurz Regex schauen,

Eine Methode welche alle Sonderzeichen aus einem String, beispielsweise in C# entfernt, sieht folgendermaßen aus :

private string RemoveSpecialChars(string input)
{
return Regex.Replace(input, @"[^a-zA-Z0-9]", string.Empty);
}


hinzukommt, wie adalse0 sagt, ToLowerCase() und Trim()
Vielleicht hilft es Dir weiter, in Java änhliches umzusetzen.
09.12.09
Mario Priebe 1,3k 1 7
2
Eine Funktion die alles was du willst auf einmal macht kenn ich nicht,
aber ein String bietet z.B. folgende methoden: toLowerCase() oder auch trim()(entfernt Leerzeichen an Anfang und Ende) was dir auf jeden Fall schon mal weiterhelfen sollte.

Was du mit sonderzeichen entfernen meinst weiss ich nicht genau, aber replace(oldChar, newChar) koennte dir helfen ...
09.12.09
adalse0 131 1 2
1
In Java würde ich dazu raten mit dem replaceAll arbeiten. Dieser ersetzt alle durch ein RegEx gefundene Zeichen durch ein beliebiges Zeichen:

deinstring = deinstring.replaceAll("[_[^\w\däüöÄÜÖ\+\- ]]", "")

Hoffe das ist in etwa das was du suchst. Das entfernt aber nur gewisse Sonderzeichen. Wenn du äöü, ÄÖÜ und +- auch noch entfernen willst musst du den verwendeten RegEx anpassen.
1
schau dir vielleicht auch mal das hier an

Soundex Implementierung

oder den Wikiartikel zu der Levenshtein-Distanz
11.12.09
Vayu 616 1 3
Ich glaub die Levenshtein Distanz ist hier ein bisschen Overkill, obwohl sie zugleich natürlich den schönsten Weg bietet Ähnlichkeiten aufzuspüren! Aber das kommt natürlich auch immer darauf an, was der Entwickler explizit vor hat :-)
Dustin Klein 13.12.09
Deine Antwort
Entweder einloggen... ...oder ohne Wartezeit registrieren
Name
Passwort
Passwort wiederholen
E-Mail
Geworben von


Login mit OpenID

Mit einem OpenID-Account kannst Du dich auf allen Webseiten anmelden, die OpenID unterstützen. Du hast bereits ein Benutzerkonto bei einem der folgenden Provider? Dann kannst Du dich direkt hier damit registrieren.


OpenID-Provider anklicken: