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:
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");
解决方案
You should use the following method for this purpose:
public String replaceAll(String regex,
String replacement)
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 mappedChars = new HashMap<>();
mappedChars.put("A", "valueForA");
mappedChars.put("B", "valueForB");
AtomicReference 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