我需要获取字符串的第一个字符,目前正在使用的是:
String firstCharacter = getTitle().substring(0, 1);
其中getTitle()
返回一个String
,可以包含多个单词和表情符号,如果第一个字符是表情符号,当我显示firstCharacter而不是表情符号时,我会使用substring
问号,因为使用substring
我会删除表情符号字符。
我想做的是:
如果第一个单词是表情符号检索并将其分配给firstCharacter
而不使用substring
;
如果第一个单词是实际单词,请使用我正在执行的substring
;
我怎么可能这样做?
答案 0 :(得分:1)
EmojiCompat用于支持Android中的Emojis。您可以通过下载或将其打包在应用程序中进行初始化。
// Initialize with your desired config
EmojiCompat.init(BundledEmojiCompatConfig(context))
// Check if EmojiCompat was successfully loaded
if (EmojiCompat.get().loadState == EmojiCompat.LOAD_STATE_SUCCEEDED) {
EmojiCompat.get().hasEmojiGlyph(yourString)
}
可以找到Emojis范围here
所以,这会导致(未经测试):
if(getTitle().substring(0,5)
== ("/[\u2190-\u21FF] | [\u2600-\u26FF] | [\u2700-\u27BF] |
[\u3000-\u303F] | [\u1F300-\u1F64F] | [\u1F680-\u1F6FF]/g")){
firstCharacter = getTitle().substring(0,5);
} else{
firstCharacter = getTitle().substring(0,1);
}
答案 1 :(得分:0)
只需使用String.codePointAt()
new String(Character.toChars(getTitle().codePointAt(0)))