You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅替换Java字符串指定位置的特定字符

问题原因

你代码中调用的String.replace("3", "9")会替换字符串中所有出现的"3"子串,因此会修改其他位置的'3'字符,不符合仅修改第3位的要求。

修复方案

Java中String是不可变类,无法直接修改指定位置的字符,推荐以下两种实现方式:

方式1:转为字符数组修改后转回字符串

String adana = "123456789133";
if (adana.length() > 2 && adana.charAt(2) == '3'){
    char[] charArray = adana.toCharArray();
    // 仅修改索引为2的位置(对应第3位字符)
    charArray[2] = '9';
    final String newText = new String(charArray);
    Log.d("TAG", "onCreate: " + newText);
}

方式2:使用substring拼接生成新字符串

String adana = "123456789133";
if (adana.length() > 2 && adana.charAt(2) == '3'){
    // 取前2位字符 + 替换后的9 + 第4位开始的剩余字符
    final String newText = adana.substring(0,2) + "9" + adana.substring(3);
    Log.d("TAG", "onCreate: " + newText);
}

两种实现都只会修改索引为2的位置的字符,不会影响其他位置的'3'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:36:03