C#: Umlaute in Strings ersetzen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_umlaute_in_strings_ersetzen_124162/page_1 - zur Vollversion wechseln!


grassi3000 schrieb am 09.09.2004 um 19:19

Tja, ich muss momentan grad ein Paar Strings auf Umlaute überprüfen, und dann den jeweiligen Umlaut durch die <x>e variante ersetzen.

Mit regex hab ich das nicht zusammengebracht, v.a. das ersetzen. Das suchen wäre ja so einfacher.

v.a. es können mehrere verschiedene Umlaute pro string vorkommen.

kennt da wer eine Lösung?


Oli200 schrieb am 09.09.2004 um 23:07

ich würd es so machen:

public static string convert_uml(string old)
{
old = old.Replace("ä","ae");
old = old.Replace("ö","oe");
old = old.Replace("ü","ue");
return(old);
}

die methode kannst du dann immer und für jeden string ausführen einfach

neu = convert_uml(alt);

dann sollte das funktionieren!


grassi3000 schrieb am 10.09.2004 um 14:14

Aha, kannte die funktion nicht. ich dachte das müsste viel komplzierter sein. geht die lösung auch bei Ö;Ü,Ä, oder muss ich da die zeilen hinzufügen?


userohnenamen schrieb am 10.09.2004 um 14:18

für großbuchstaben machst dann halt so

old = old.Replace("Ä","Ae");
old = old.Replace("Ö","Oe");
old = old.Replace("Ü","Ue");

oder gleich:
old = old.Replace("Ä","Ae").Replace("Ö","Oe").Replace("Ü","Ue"); ;)

kleiner tipp: benutz das Intellisense menü (das das automatisch aufklappt bei einem punkt) und lies dir die sachen durch, mit den beschreibungen
dadurch erfährt man meist schon sehr viel


Oli200 schrieb am 10.09.2004 um 16:04

hast du die MSDN? da kannst du auch sehr viele funktionen nachschlagen!


watchout schrieb am 10.09.2004 um 18:06

für alle, die's _noch immer_ nicht wissen:
http://msdn.microsoft.com/


grassi3000 schrieb am 21.09.2004 um 16:43

So, ich hab den Code jetzt ausprobiert.
Jedoch werden bei mir die Umlaute nicht ersetzt.

Die Werte die ich in dem String habe, wo die Umlaute ersetzt werden, kommen aus einem Input Stream, mit der Default Codierung (ASCII,UTF8,... haben die Umlaute nicht mal richtig importiert)

Und ich habe bereits auf MSDN gesucht, aber nix zu dem Thema gefunden.
die Überladung der Replace methode mit chars kann ich ja auch nicht nehmen, da ich einen char durch 2 ersetze, oder liege ich da falsch.


Master99 schrieb am 21.09.2004 um 16:49

Zitat von grassi3000
die Überladung der Replace methode mit chars kann ich ja auch nicht nehmen, da ich einen char durch 2 ersetze, oder liege ich da falsch.

doch kannst du!

es können da (fast) beliebig viele chars eingefügt werden, egal ob ein char gegen ein anderes oder 5 gegen 1...


grassi3000 schrieb am 21.09.2004 um 18:03

wie gebe ich dann mehrere chars an?
Replace('ä','ae')
oder
Replace('ä','a''e')
?
(komm in den nächsten stunden nicht zum testrechner, darum die blöde frage)


Master99 schrieb am 21.09.2004 um 18:31

mhm, hab dich da oben wohl falsch verstanden...

oli und userohnenamen's lösungen gehen 100%ig (selbst schon oft so gemacht)... kopier mal deinen genauen code.


grassi3000 schrieb am 21.09.2004 um 19:24

Also das ist der Code den ich verwende:

Code:
FolderName.Replace("ä","ae");
FolderName.Replace("ö","oe");
FolderName.Replace("ü","ue");
FolderName.Replace("Ä","Ae");
FolderName.Replace("Ö","Oe");
FolderName.Replace("Ü","Ue");


Master99 schrieb am 21.09.2004 um 19:31

naja is ganz klar... hat schon nen sinn wie meine vorredner ihren code gestaltet haben...

der string mit den ersetzen zeichen ist das ERGEBNIS dieser replace funktion.

so wie du das ganze geschrieben hast speicherts du das ergebnis gar nirgengs.

ums anders darzustellen:

so gehört:

Code:
ergebnis = func(a,b);

dein code:
Code:
func(a,b);

"func" ist irgendeine funktion die halt ein ergebnis zurückgibt.


dein code muss also so lauten:

Code:
FolderName = FolderName.Replace("ä","ae");


btw.: dein code schaut aber nur hier herinnen so "breit" aus oder sonst auch? [ärger unübersichtlich]


grassi3000 schrieb am 21.09.2004 um 19:37

ah... darum ging das nicht :)
thx
(die formatierung hab ich richtig gestellt ... der hat ein paar tabs zu viel aus dem code rauskopiert)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026