---
title: "leta upp :), ;), :D i en String"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/55384-leta-upp-d-i-en-string"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "jme"
published: "2002-10-07T21:13:22.000Z"
updated: "2002-10-08T10:06:09.000Z"
replies: 3
views: 263
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/55384-leta-upp-d-i-en-string"
---

# leta upp :), ;), :D i en String

## #1 — jme, 2002-10-07T21:13Z

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!

Permalänk: https://www.webforum.nu/p/55384

## #2 — Viktor, 2002-10-07T21:48Z

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

Permalänk: https://www.webforum.nu/p/813269

## #3 — AG, 2002-10-08T10:02Z

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

Permalänk: https://www.webforum.nu/p/813459

## #4 — Viktor, 2002-10-08T10:06Z

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

Permalänk: https://www.webforum.nu/p/813465

---

Tråden på webben: https://www.webforum.nu/amne/java/55384-leta-upp-d-i-en-string
