Java中如何使用String数组实现addPrefix方法添加与修改前缀
问题核心需求
- 实现
public static addPrefix()方法,入参为字符串数组、字符串前缀,返回全新数组 - 新数组每个元素为「传入前缀 + 单个空格 + 原数组对应位置元素」
- 禁止修改传入的原数组内容
预期运行效果
String[] names = {"John", "Smit", "Karl"}; var namesWithPrefix = App.addPrefix(names, "Mr."); System.out.println(Arrays.toString(namesWithPrefix)); // => ["Mr. John", "Mr. Smit", "Mr. Karl"] System.out.println(Arrays.toString(names)); // 原数组不发生改变 // => ["John", "Smit", "Karl"]
原代码问题排查
- 方法签名错误:第二个入参应该是单个字符串
String prefix,而非字符串数组String[] prefixes,和调用逻辑不匹配 - 冗余逻辑:数组输出时的方括号、逗号分隔符是
Arrays.toString()方法自动生成的,不需要手动拼接,手动添加会导致格式完全错乱 - 拼接逻辑错误:没有在前缀和名称之间添加要求的空格,还将所有元素累计拼接到同一个字符串中,未按位置给新数组元素单独赋值
正确实现代码
public class App { public static String[] addPrefix(String[] names, String prefix) { String[] result = new String[names.length]; for (int i = 0; i < names.length; i++) { // 按位置单独拼接前缀、空格、原元素 result[i] = prefix + " " + names[i]; } return result; } }
实现说明:新数组是单独初始化的新对象,遍历过程中只读取原数组的元素值,全程不会修改原数组的内容,符合需求要求。
内容的提问来源于stack exchange,提问作者Pete Alexandrovich
相关产品推荐
相关产品推荐

