问题引入
刷算法题lc2288的时候遇见的一个小细节,记录一下,有兴趣的朋友可以做一下,练习一下哈哈~
此题需要使用大家都比较熟悉的split方法将句子按照空格拆分为字符串数组。
然后再在数组中对每一个字符串操作,操作完成后要求返回字符串数组连起来的句子。
博主当时的做法是:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {if (i != n - 1) {sb.append(arr[i]).append(" ");} else {sb.append(arr[i]);}
}
return sb.toString();
使用了 StringBuilder
来逐个连接字符串。这么做虽然也能达到目的,但代码较为冗长,而且需要手动处理最后一个单词后不添加空格的问题。
String.join()方法做法
使用 String.join
可以简化成一句话:
return String.join(" ", words);
优点
- 简洁:代码更短,更易读。
- 高效:底层实现进行了优化,通常比手动拼接更高效。
- 避免错误:不用担心忘记处理分隔符,尤其是最后一个元素的分隔符问题。