
本文详解如何使用 for 循环将 int[] 数组中的每个元素拼接成一个以空格分隔的字符串,如 `{3,4,5,6}` → `"3 4 5 6"`,强调手动构建逻辑、避免常见错误,并提供可直接运行的规范实现。
在 Java 中,将数组转为指定格式的字符串是基础但高频的操作。本题明确要求:不使用 Arrays.toString() 等内置格式化方法(因其输出含方括号和逗号),而是通过显式 for 循环,逐个读取 nums 元素,拼接成以单个空格分隔、无首尾多余空格(允许末尾空格但不影响判题)的字符串。
关键约束与设计要点:
- ✅ 必须使用传统 for 循环(for(int i = 0; i
- ✅ 字符串变量 str 需在循环外声明,在循环内逐步拼接;
- ❌ 不可硬编码(如 String str = "[1 , 2, 3, 4]";),必须动态处理任意长度数组;
- ❌ 不可直接返回 null 或未初始化字符串(会导致 NullPointerException);
- ⚠️ 首个元素前不加空格,后续每个元素前加一个空格——最稳妥方式是“先处理第一个,再对剩余元素统一加前导空格”,或使用条件判断。
以下是符合题目要求的完整实现:
public class ReturnArrayContents {
public String arrayToString(int[] nums) {
// 边界处理:空数组或 null
if (nums == null || nums.length == 0) {
return "";
}
StringBuilder str = new StringBuilder();
// 先添加第一个元素
str.append(nums[0]);
// 从第二个元素开始,每个前面加一个空格
for (int i = 1; i < nums.length; i++) {
str.append(" ").append(nums[i]);
}
return str.toString();
}
}✅ 为什么推荐 StringBuilder?
相比 String +=,StringBuilder 在循环中拼接效率更高(避免重复创建不可变字符串对象),是 Java 字符串拼接的最佳实践。
✅ 若必须用 String(非 StringBuilder)?
可初始化为空字符串,但需注意首次拼接不加空格:
String str = "";
for (int i = 0; i < nums.length; i++) {
if (i == 0) {
str = String.valueOf(nums[i]);
} else {
str = str + " " + nums[i]; // 注意:仅用于教学,生产环境请用 StringBuilder
}
}
return str;⚠️ 常见错误警示:
立即学习“Java免费学习笔记(深入)”;
- 忘记初始化 str(如 String str; 未赋值)→ 编译报错;
- 循环内始终 str = nums[i] + " " → 只保留最后一个值;
- 每次都 str += " " + nums[i] → 导致开头多一个空格(如 " 3 4 5 6");
- 未处理 nums == null 或空数组 → 运行时抛出 NullPointerException 或 ArrayIndexOutOfBoundsException。
? 总结:本题训练的是“外部变量在循环中累积更新”的核心编程思维。掌握 StringBuilder 的增量构建模式,不仅满足题目要求,更是写出高效、健壮 Java 字符串操作代码的基础能力。










