获取 Android 中替换格式字符串子字符串的位置



我不太确定如何措辞,所以标题有点奇怪。我想做的是着色并更改格式为"%1$d/10 %2$s"格式的字符串中 2 个替换子字符串的大小。例如,假设第一个参数是"1",第二个参数是"垃圾",最后一个字符串将是"1/10垃圾"。我想将"1"着色为红色并将样式设置为粗体,并将"垃圾"着色为红色,但保持"/10"不变。我知道我可以用 Spannables 做到这一点,但问题是我看不到获取各种子字符串的起点和终点的方法。我知道我可以只查找第一个"/"并假设它前面的字符是第一个格式替换,然后查找"10"之后的第一个非空格字符,并且知道这是第二个格式替换,但这似乎有点混乱。当然,应该有某种方法来查询字符串以获取已替换为每个格式参数的字符的位置?

不是我知道的。

Java 中的所有格式方法都返回字符串或格式化程序(取决于您使用的内容(。

它看起来"混乱",但并没有那么多,正如你所说,你可能会使用 indexOf(String str, int fromIndex( 的变体两次来获取索引,然后使用 spannable 着色。所以它可能是大约 4 到 6 行相关代码。

手动查找索引的另一种方法是使用 for 循环查找'/',然后查找' '。如果您的字符串始终具有此格式,它将起作用。

也有正则表达式,但这有点矫枉过正正!

相关内容

  • 没有找到相关文章

最新更新