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
相关产品推荐
相关产品推荐

