2016-09-18 5 views
2

Я пытаюсь получить код emoji внутри длинной строки из базы данных в таком формате: 0x1F60A ... Поэтому я могу получить доступ к коду, но это будет Строка.Integer.parseInt ("0x1F60A") заканчивается NumberformatException

Сначала я попытался привести переменную, делая tv.setText(beforeEmo + getEmijoByUnicode((int)emoKind)); но Android-студия намекает: «не может бросить„java.lang.String“в ИНТ» ...

getEmijoByUnicode метод:

public String getEmijoByUnicode(int unicode) { 
    return new String(Character.toChars(unicode)); 
} 

Так что я попытался это один:

tv.setText(beforeEmo + getEmijoByUnicode(Integer.parseInt(emoKind))); 

, но он падает с NumberFormatError. Есть ли способ сделать emoji в моем тексте?

+0

Возможно, вы имели в виду '0x1F60A' без кавычек? В противном случае у вас просто строка. В противном случае 'parseInt' принимает параметр radix из 16 –

+0

http://stackoverflow.com/a/39850130/4723795 – xenteros

ответ

3

Попробуйте

Integer.parseInt("1F60A", 16); 

или

Long.parseLong("1F60A", 16); 

, чтобы преобразовать строку в Int или долго. Поэтому вам нужно избавиться от «0x», например, это

getEmijoByUnicode(Integer.parseInt(emoKind.substring(2), 16)); 
+0

спасибо, он отлично работал. –