我必须编写一个显示用户输入字符串的函数,在textview中使用颜色。
例如:^1Hi ^2 everyone
:
所以我认为我必须使用这样的分割函数:
String txt = myEditText.getText().toString();
String[] splits = txt.split("\\^(\\d+)");
但我不知道如何在“^”之后输入数字。
然后我想指定一个带有数字类型的颜色。
我认为我可以使用:
MyTextView.setText(HTML.fromHtml(myTextModifiedWithColor);
所以,如果您有任何想法,我们将非常感激。
答案 0 :(得分:0)
我建议您仅在^
上拆分,原因很简单:您的数组将填充由^
终止并以数字开头的字符串。
现在,您只需删除最后一个字符^
即可轻松处理所有字符串,因为您不想显示该字符。此外,您想要读取每个字符串的第一个字符,并相应地调整颜色。不要忘记删除该字符。
要修剪字符串,我建议使用substring()
。要应用颜色,我建议使用switch
语句。
另外,不要忘记你的第一个字符串可能是无用的,或者不是以数字开头。无论如何,请务必检查所有字符串的一致性。我还强烈建议您使用另一种应用标记的方式。如果您真的想要花哨,可以使用replace()
方法使用更复杂的RegEx
来将标记替换为正确的HTML
标记,然后通过使用将其可视化myTextView.setText(Html.fromHtml(yourString));
。
答案 1 :(得分:0)
试试这段代码,
Pattern p = Pattern.compile("^(.*):([\\d\\.]+)/(\\d+)$");
Matcher m = p.matcher( someString );
if (m.find()) {
m.group(1); // returns the text before the colon
m.group(2); // returns the double between the colon and the slash
m.group(3); // returns the integer after the slash
}