这里的例子:“[ashish]中的[我想要的数据] [某些[字符串]”
我希望得到蓝色的字符串,在“[”蓝色“]”之间,并将[(开始)(关闭)]替换为空格。喜欢facebook标记声明。
答案 0 :(得分:0)
尝试以下方法:
private SpannableString makeBluish(String text)
{
String temp = text;
Pattern pattern = Pattern.compile("\\[([\\sa-zA-Z]+)\\]");
Matcher matcher = pattern.matcher(text);
while (matcher.find())
{
temp = temp.replace(matcher.group(0), (matcher.group(1)));
}
SpannableString linkedString = new SpannableString(temp);
matcher = pattern.matcher(text);
while (matcher.find())
{
final String token = matcher.group(1);
int index = temp.indexOf(token);
linkedString.setSpan(new ForegroundColorSpan(Color.BLUE), index, index + token.length(), SpannableString.SPAN_INCLUSIVE_INCLUSIVE);
}
return linkedString;
}
和
textString.setText(makeBluish("some [string] with [the data i want] inside [ashish]"));
此处textString
是TextView。