PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.NET] String.Replace



c2x
20.04.2010, 22:54
Folgendermaßen:
Es geht darum, z.B. "i" mit "ilewi" zu ersetzen. Allerdings ist es nicht nur für den Buchstaben "i" gedacht, sondern für mehrere (Link (http://www.kikisweb.de/spielundspass/unsinn/loeffelsprache.htm)).

Allerdings lässt sich mit [...].Replace("i", "ilewi") immer nur ein Buchstabe verändern bzw. ersetzen.

Muss ich den Text erst komplett zerlegen, damit Buchstaben wie "e", "i", "a" oder "u" ersetzt werden können?

Th3_Cr4xX
21.04.2010, 15:25
............

inout
21.04.2010, 15:48
Also wenn ich dich richtig verstanden habe, suchst du sowas in der Art:


dim s as string="hallo"
dim a1() as string={"a","o"}
dim a2() as string={"alewa","olewo"}
for i as integer=0 to a1.count-1
s=s.replace(a1(i),a2(i))
next
kA, ob das so syntaktisch korrekt ist, da VB...
evtl. hat VB aber auch schon so etwas eingebaut, ansonsten müsste das mit Regex.Replace aber auch in einer Zeile zu schaffen sein...

c2x
21.04.2010, 15:52
Schon klar. Ich hab 2 Textboxen und einen Button. In die erste Textbox, wird der Text, der in die Löffelsprache übersetzt werden soll, vom Benutzer eingegeben.

In der Button-Klasse folgendes:

Dim StrX As String = txtKlartext.Text
Dim StrY As String = StrX.Replace("ie", "ielewie")
txtÜbersetzt.Text = StrY

Das ist nur ein Beispiel (für "ie"), es gibt aber noch "e" -> "elewe", "a" -> "alewa" usw. Würde ich es wie folgt machen:

Dim StrY As String = StrX.Replace("ie", "ielwie") & StrX.Replace("au", "aulewau") & _
StrX.Replace("e", "elewe") usw.

Dann passiert folgendes:
Aus "Ich gehe jetzt nach Hause" wird:
"Ilewe gehe jetzt nach HauseIch gelewehe jetzt nach HauseIch gehelewe jetzt nach Hause" usw., also hängt sich bei jedem ersetzten String, der ganze Satz wieder an...

(sollte das, was ich geschrieben habe unverständlich sein, dann bitte Bescheid sagen)

Edit:

Also wenn ich dich richtig verstanden habe, suchst du sowas in der Art

:p

Danke, hab zu kompliziert gedacht :rolleyes:

inout
21.04.2010, 16:00
Dann passiert folgendes:
Aus "Ich gehe jetzt nach Hause" wird:
"Ilewe gehe jetzt nach HauseIch gelewehe jetzt nach HauseIch gehelewe jetzt nach Hause" usw., also hängt sich bei jedem ersetzten String, der ganze Satz wieder an...

Das ist klar, da das & (und ich glaube auch das +) in VB der Konkatenationsoperator ist. Wenn dann musst du es so machen:


Dim StrY As String = StrX.Replace("ie", "ielwie").Replace("au", "aulewau") '...

c2x
21.04.2010, 16:32
Allerdings geraten nun "ie" mit "i" und "e" in Konflikt (ebenso bei "au" oder "ei").

Ich denke, dass ich den Rest selbst programmiert bekomme. ;)