Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace emoji with appropriate java code

Tags:

java

emoji

I am working on a simple java program that can take a string like this:

β›”οΈπŸš«βœ‹STOPβœ‹πŸš«β›”οΈ 🚫You've violated πŸ‘ΏπŸ‘Ž the law!🚫 πŸ˜–πŸ˜–But now...πŸ˜πŸ˜– 😈You

and replace each emoji with the appropriate java character. (I'm not sure what to call them).

Here is an example:

The automobile emoji: πŸš— would be replaced with: "\uD83D\uDE97".

This allows me to have a string such as

"I am a car: \uD83D\uDE97"

in Java source code, and let it look like this:

enter image description here

So the question is, how can I automatically find a certain emojji in a string (for example, find every red car emoji in a string) and replace it with its appropriate "Java character"?

EDIT ONE:

Nevermind, turned out to be really simple. I could just do

string.replace("πŸš—","Java code");
like image 950
Roymunson Avatar asked Mar 06 '26 03:03

Roymunson


1 Answers

You should use the following method for this purpose:

public String replaceAll(String regex, String replacement)

See documentation.

Example:

source
.replaceAll("πŸš—", "value")
.replaceAll("🚫", "nextValue")

A nicer way to do it is to build a map with your existing chars, and do the replacement in a for each:

Map<String, String> mappedChars = new HashMap<>();
mappedChars.put("A", "valueForA");
mappedChars.put("B", "valueForB");

AtomicReference<String> value = new AtomicReference<>("A and B and C");

mappedChars
        .entrySet()
        .stream()
        .forEach(entry -> value.getAndUpdate(current -> current.replaceAll(entry.getKey(), entry.getValue())));

//valueForA and valueForB and C
like image 90
Ioan Avatar answered Mar 08 '26 17:03

Ioan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!