如何避免SpannableString跨越数字

时间:2017-12-28 15:35:51

标签: java android spannablestring

我正在尝试使用Spannable String来跨越String而不跨越数字。

<camel:route>
<camel:from uri="file://input/orders" />
<camel:setHeader headerName="FileNameWithoutExtension">
    <camel:simple>${file:onlyname.noext}</camel:simple>
</camel:setHeader>

我想避免对数字进行任何更改,只是跨越字符。 有可能吗?

我的代码:

String s = "asd21da";

我用它来改变字符串的字体,但我试图避免改变数字字体。

1 个答案:

答案 0 :(得分:0)

一种方法是设置每个字符的跨度,如果它不是数字:

SpannableString span = new SpannableString(s);
for (int i = 0; i < span.length(); i++) {
    if (Character.isDigit(span.charAt(i)))
         continue;

    span.setSpan(new TypeFace("", Typeface.createFromAsset(context.getAssets(),
        "fonts/font.ttf")), i, i+1, span.SPAN_INCLUSIVE_INCLUSIVE);
}