我有一个用UTF-8编码的字符串.例如:
Thats a nice joke
Run Code Online (Sandbox Code Playgroud)
我必须提取句子中的所有表情符号.表情符号可以是任何表情符号
当在终端使用命令查看此句子时,less text.txt它被视为:
Thats a nice joke <U+1F606><U+1F606><U+1F606> <U+1F61B>
Run Code Online (Sandbox Code Playgroud)
这是表情符号的相应UTF代码.emojis的所有代码都可以在emojitracker找到.
为了找到所有的出现,我使用了正则表达式模式,(<U\+\w+?>)但它不适用于UTF-8编码的字符串.
以下是我的代码:
String s="Thats a nice joke ";
Pattern pattern = Pattern.compile("(<U\\+\\w+?>)");
Matcher matcher = pattern.matcher(s);
List<String> matchList = new ArrayList<String>();
while (matcher.find()) {
matchList.add(matcher.group());
}
for(int i=0;i<matchList.size();i++){
System.out.println(matchList.get(i));
}
Run Code Online (Sandbox Code Playgroud)
这个pdf说Range: 1F300–1F5FF for Miscellaneous Symbols and Pictographs.所以我想捕捉这个范围内的任何角色.
如何将这样的表情符号转换为文本?我的意思是将幸福的面孔转换为"快乐"等字样.使用Java,我该如何实现?