Java字符串处理问题:提取单词第二个字符,短单词替换为@
问题排查与代码修正
错误原因分析
原代码的核心问题是多了一层不必要的内层循环:遍历每个单词的每个字符时,每次循环都会重复输出该单词的第二个字符(或@),导致一个单词被输出多次。比如单词"am"长度为2,内层循环执行2次,就会重复输出2次'm';单词"engineer"长度为8,内层循环执行8次,就会重复输出8次'n'。
修正后的代码
public class HelloWorld{ public static void main(String []args){ String a = "I am an engineer"; String[] ar = a.split(" "); for (int i = 0; i < ar.length; i++) { String word = ar[i]; if (word.length() >= 2) { System.out.print(word.charAt(1) + " "); } else { System.out.print("@ "); } } } }
关键修正点
- 移除内层的
for (int j=0;j<=ar[i].length()-1;j++)循环,每个单词仅处理一次 - 将
System.out.println改为System.out.print并添加空格分隔,确保输出格式符合预期(@ m n n) - 简化循环条件为
i < ar.length,比i<=ar.length-1更易读
输出结果
@ m n n
内容的提问来源于stack exchange,提问作者Hitheesh Sh
相关产品推荐
相关产品推荐

