You need to enable JavaScript to run this app. Java/Android给字符串小数点后子串上色为何无法保留完整原字符串
优惠活动
大模型
产品
解决方案
定价
更多

Java/Android给字符串小数点后子串上色为何无法保留完整原字符串

问题原因
  • 你在替换时错误将变量名str作为固定字符串写在了替换模板中,没有把实际提取的小数部分内容拼入标签内,导致原小数部分被替换为字面量str,显示异常。
  • 硬编码substring(7)的截取逻辑不通用,若整数部分长度发生变化,会出现截取错误甚至下标越界问题。
解决方法

先定位小数点位置拆分整数、小数部分,再拼接带样式的字符串即可,示例代码如下:

String number = "123456.2585";
int dotPosition = number.indexOf('.');
if (dotPosition != -1) {
    // 保留整数部分+小数点
    String integerPart = number.substring(0, dotPosition + 1);
    // 提取小数部分
    String decimalPart = number.substring(dotPosition + 1);
    // 拼接带颜色样式的完整内容
    String result = integerPart + "<font color='#EE0000'>" + decimalPart + "</font>";
    // 安卓7.0及以上推荐使用FROM_HTML_MODE_LEGACY参数避免API废弃警告
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
        editText2.setText(Html.fromHtml(result, Html.FROM_HTML_MODE_LEGACY));
    } else {
        editText2.setText(Html.fromHtml(result));
    }
} else {
    // 无小数点时直接展示原内容
    editText2.setText(number);
}

该方案兼容任意长度的整数/小数部分,可稳定实现仅小数部分标红的效果。

内容的提问来源于stack exchange,提问作者Noudy Daher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 15:54:04