从EditText获取所有主题标签 [英] Get all hashtags from EditText
本文介绍了从EditText获取所有主题标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 EdiText
.用户可以在其中提及主题标签.我想获取这些主题标签并将其添加到 ArrayList
.如何从 EdiText
获取这些主题标签.
I have an EdiText
. User can mention hashtags in it. I want to get those hashtags and add them to an ArrayList
. How can I get those hashtags from EdiText
.
假设我的 edittxtmsg
包含 #Stackoverflow让我#hashtag#问题
我想要这些标签: #Stackoverflow #hashtag #problem
edittxtmsg.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
int strLenght = s.toString().length();
int available = 140 - strLenght;
setAvailableSpace(available);
if (available < 0) {
s.delete(strLenght - 1, strLenght);
}
mfinalmsg = s.toString();
}
private void setAvailableSpace(int available) {
// TODO Auto-generated method stub
tvcount.setText(available + "");
}
});
推荐答案
您可以使用正则表达式从 EditText
中获取所有主题标签:
You can use Regular Expression to get all hashtags from EditText
:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String text = editText.getText().toString();
String regexPattern = "(#\\w+)";
Pattern p = Pattern.compile(regexPattern);
Matcher m = p.matcher(text);
while (m.find()) {
String hashtag = m.group(1);
// Add hashtag to ArrayList
...
}
(#\\ w +)
与所有以#
开头的主题标签匹配.
(#\\w+)
matches all hashtags that start with #
.
这也很快.
这篇关于从EditText获取所有主题标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文