jmeMedlem sedan maj 20011 967 inlägg
Hej!
Jag försöker implementera smileys i en chat.
Dvs om man skriver :), ;), :D osv så byts de ut mot motsvarande bild...
Vad vore ett bra och enkelt sätt att leta upp dessa strängar från en String?
Om jag har:
String text = "Hello :) World!";
StringTokenizer token = new StringTokenizer(text);
En token separaras från andra token vanligtvis av ett mellanslag. Men eftersom StringTokenizer inte skiljer på ett mellanslag eller tre mellanslag så har jag problem med att om det just finns flera mellanslag mellan varje ord i Stringen.
Dvs om man skriver in tex ett :) så skall den bytas ut mot en bild.
Denna bild ersätter då :). För att placera bilden på rätt ställe i texten så måste jag veta hur många mellanslag det finns mellan varje token.
Help me!
ViktorMedlem sedan aug. 20021 710 inlägg
EDIT: Kommer alltid på saker efteråt :) Detta gäller bara JDK 1.4, om du kör denna kod i en applet så fungerar det inte så bra :(
Här är koden som du "ska" använda
text=text.replaceAll("\\:\\)","<img src=\"kalle.img\");
Denna kod kommer att byta ut alla ":)" mot "<img src="kalle.img">. Titta här för mer inte, JavaDoc, eller http://www.webforum.nu/showthread.php?s=&threadid=52270.
/Viktor
AGMedlem sedan mars 20001 229 inlägg
Japp
Pattern p = Pattern.compile(":)");
Matcher m = p.matcher(input);
input = m.replaceAll("<img src=happy.gif>");
Är som Viktors kod, fastanvänder regualar expression istället.
Andreas
ViktorMedlem sedan aug. 20021 710 inlägg
Det gör min med fast inbyggt i string klassen :)
Du måste escapa : och ) för att det ska fungera också, annars tror Java att det är kontrolltecken för RegExp.
/Viktor