Получение кода смайликов UTF-8/19, введенного пользователем

Я создаю приложение для Android, которое включает в себя функцию, в которой пользователь может ввести строку и смайлики (если он этого хочет). Например:

Счастливого Хэллоуина! :Д :Д :Д

Я хочу получить код UTF-8 смайликов, введенных пользователем, поэтому в фоновом режиме это выглядит так:

Счастливого Хэллоуина! U+1F601 U+1F601 U+1F601

Ниже приведен мой код, но он не работает:

    class emoticons
   {
  public static void main(String[] args)
   {
    Scanner emo = new Scanner(System.in);
    System.out.println(emo.nextLine());   

    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));
    }

Итак, в основном, я просто хочу получить код UTF смайликов, нажатых пользователем.


person Shivanshu Rathore    schedule 10.05.2015    source источник
comment
Если это то, что вводит ваш пользователь, строка вообще не содержит символов смайликов.   -  person Jongware    schedule 11.05.2015
comment
@Jongware: Почему так? Система не будет считать это персонажем или что-то в этом роде? или он просто возьмет только строку happy halloween и распечатает ее?   -  person Shivanshu Rathore    schedule 11.05.2015
comment
Вместо этого U+1F601 TextView распознает это \u1F601. Однако имейте в виду, что не все символы Unicode включены в стандартный системный шрифт. Для этого вам нужно прибегнуть к какой-либо библиотеке смайликов или специальному шрифту.   -  person Phantômaxx    schedule 11.05.2015
comment
Строка вашего примера содержит только простые символы ASCII. Возможно, вы мысленно переводите каждый из трех последних наборов :) в один символ Юникода ????, или ваша программа обычно переводит его за вас, а вы об этом не знаете ( таким образом ложно заставили поверить, что :)????), или ваш пример действительно плох.   -  person Jongware    schedule 11.05.2015