在许多情况下,我们需要删除StringBuilder/StringBuffer的最后一个字符.例如,给定a int[]{1,2,3},实现String toString(int[] a)方法,用逗号分隔符联系每个元素.输出应该是1,2,3,没有拖尾逗号.
我们可以轻松编写一个循环:
int[] nums = new int[]{1,2,3,4,5};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < nums.length; i++) {
sb.append(nums[i]);
sb.append(",");
}
//here we need to remove the tailing ','
Run Code Online (Sandbox Code Playgroud)
但我们总是需要去除拖尾','.有两种方法可以实现它:
sb.deleteCharAt(sb.length() - 1);
Run Code Online (Sandbox Code Playgroud)
和
sb.setLength(sb.length() - 1);
Run Code Online (Sandbox Code Playgroud)
推荐哪一个?为什么?
注意:我知道做了Arrays.toString什么.这只是一个描述我的问题的例子,可能不太合适.
这不是关于字符串连接的讨论,而是StringBuffer/StringBuilder的最佳实践.