假设您有以下字符串:
String s = "The cold hand reaches for the %1$s %2$s Ellesse's";
String old = "old";
String tan = "tan";
String formatted = String.format(s,old,tan); //"The cold hand reaches for the old tan Ellesse's"
假设您想以这个字符串结尾,但也有一个特定的Span
集合,用于替换任何单词String.format
。
例如,我们还想做以下事情:
Spannable spannable = new SpannableString(formatted);
spannable.setSpan(new StrikethroughSpan(), oldStart, oldStart+old.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new ForegroundColorSpan(Color.BLUE), tanStart, tanStart+tan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
是否有一种可靠的方法来了解 和 的起始old
索引tan
?
请注意,仅搜索 'old' 会返回 'cold' 中的 'old',因此这是行不通的。
我猜,什么会%[0-9]$s
起作用的是预先搜索,并计算偏移量以解释String.format
. 不过,这似乎令人头疼,我怀疑可能有一种类似的方法可以提供String.format
更多有关其格式细节的信息。嗯,有吗?