Ich habe eine App in C# geschrieben, die eine Menge String Vergleich macht. Die Strings werden aus einer Vielzahl von Quellen (einschließlich Benutzereingaben) eingezogen und dann verglichen. Allerdings habe ich Probleme beim Vergleich von Speicherplatz '32' mit dem nicht-brechenden Speicherplatz '160'. Für den Benutzer sehen sie gleich aus und sie erwarten eine Übereinstimmung. Aber wenn die App den Vergleich durchführt, gibt es keine Übereinstimmung.String-Vergleich, .NET und nicht brechende Leerzeichen
Was ist der beste Weg, um darüber zu gehen? Muss ich zu allen Teilen des Codes gehen, die einen String vergleichen und nicht-brechende Leerzeichen manuell in Leerzeichen normalisieren? Bietet .NET etwas, um damit zu helfen? (Ich habe alle Vergleichsoptionen ausprobiert, aber keine scheint zu helfen.)
Es wurde vorgeschlagen, dass ich die Strings beim Empfang normalisiere und dann die String-Vergleichsmethode einfach die normalisierten Strings vergleichen lasse. Ich bin mir nicht sicher, ob es einfach wäre, das zu tun, denn was ist eine normalisierte Zeichenkette überhaupt? Was normalisiere ich auch? Sicher, jetzt kann ich nichtbrechende Räume in brechende Räume umwandeln. Aber was kann sonst noch auftauchen? Kann es sehr viele dieser Regeln geben? Könnten sie sogar widersprüchlich sein? (In einem Fall möchte ich eine Regel verwenden und in einem anderen nicht.)
Sie Ihre eigene Frage bearbeiten können weitere Informationen oder zur Klarstellung hinzuzufügen. –