在许多情况下,我们需要删除 StringBuilder/StringBuffer 的最后一个字符。例如,给定一个
我们可以很容易地编写一个循环:
注意: 我知道
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 ','
但是我们始终需要删除末尾的','
。有两种实现方法:
sb.deleteCharAt(sb.length() - 1);
和
sb.setLength(sb.length() - 1);
哪个更值得推荐?为什么?注意: 我知道
Arrays.toString
是做什么的。这只是一个例子,用于描述我的问题,可能不太合适。
这不是关于字符串拼接的讨论,而是关于StringBuffer/StringBuilder最佳实践的。
Arrays.toString(nums)
有什么问题?然后删除第一个和最后一个字符。但这是一个关于一般使用的好问题。 - Anirban Nag 'tintinmj'