Во многих случаях нам нужно удалить последний char 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.