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

Java实现:将字符串所有数字替换为0(仅用charAt方法)

如何用charAt方法将字符串中所有数字替换为0并保留非数字文本

你的需求是将字符串中的所有数字替换为0(比如输入Hell1234oo输出Hell0000oo),但现有代码仅能输出替换后的0,无法保留非数字文本,问题出在以下几点:

  • 遇到非数字字符时,仅将字符存入temp变量但从未输出该变量的内容
  • 遇到数字时直接打印0,同时清空temp,导致之前积累的非数字文本被丢弃
  • 额外给s1添加了空格,既无必要还会引入多余字符

按照要求仅使用charAt方法,修改后的代码如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.next();
        String result = "";
        
        for (int i = 0; i < s1.length(); i++) {
            char currentChar = s1.charAt(i);
            // 判断当前字符是否为数字
            if (currentChar >= '0' && currentChar <= '9') {
                result += '0';
            } else {
                result += currentChar;
            }
        }
        
        // 输出完整的处理结果
        System.out.println(result);
    }
}

修改说明:

  • 去掉了多余的s1 = s1 + " ";,避免引入不必要的空格
  • 用result变量统一存储所有处理后的字符(数字替换为0,非数字保留原字符)
  • 移除了无用的temp="";清空操作,不再丢弃积累的内容
  • 循环结束后一次性输出完整结果,确保所有字符都能被正确打印

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:35:17