[我正在创建一个EditText
,当用昵称写@时,可能会提及其他用户,例如在Facebook,Instagram,Twitter等上。例如,在文本中“今天@john和@jane吃了蛋糕” ,我想创建一个带有值“ john”和“ jane”的ArrayList
。 I tried this,但是没有用。该怎么做才能做到这一点?
使用此正则表达式。它查找在@后面的单词字符组(字母,数字,下划线)。
val atMentions: List<String> = "(?<=@)\\w+".toRegex().findAll(editText.text).map { it.value }
如果需要定义一组不同的文字字符,请将上面的
\\w
替换为[\\w]
,然后将其他可接受的字符放在w之后。
我认为有2个不错的选择:
public static ArrayList<String> getMentionedNames(String text){
String[] tmp=text.split("@");
ArrayList<String> arrayList=new ArrayList<>();
for (int i=1;i<tmp.length;i++){
String first=tmp[i].split(" ")[0];
arrayList.add(first);
}
return arrayList;
}
你可以做