Как удалить только запятые, которые появляются из-за Arrays.toString()

Замена квадратных скобок не проблема, но проблема заключается в замене запятых, replace(",", "") потому что он делает это со всеми запятыми в моей таблице, и мне нужно удалить только те, которые появляются из-за Arrays.toString()

System.out.println( Arrays.toString( product ).replace("[", "").replace("]", "").replace(",", ""));

Если нет способа сделать это, возможно, есть другие способы напечатать мой массив, например, строитель строк... и т. Д.? но я не уверен, как его использовать

3 ответа

Вместо того, чтобы использовать Arrays.toString, так как вы не хотите вывод, который он создает, используйте свой собственный цикл:

StringBuilder sb = new StringBuilder(400);
for (int i = 0; i < product.length; ++i) {
    sb.append(product[i].toString());
}
String result = sb.toString();

Обратите внимание, я использую toString на ваше product записи; может быть более подходящий выбор в зависимости от того, что это такое.

Если вы хотите разделитель (кроме ,очевидно), просто добавьте его в StringBuilder по ходу дела:

StringBuilder sb = new StringBuilder(400);
for (int i = 0; i < product.length; ++i) {
    if (i > 0) {
        sb.append(yourDelimiter);
    }
    sb.append(product[i].toString());
}
String result = sb.toString();

Мы не знаем, как выглядят ваши объекты в вашем массиве, но вы не должны использовать Arrays.toString если вам не нравится вывод, так как это всего лишь вспомогательный метод, чтобы сэкономить ваше время. Просто переберите свои объекты с помощью цикла и распечатайте их.

Есть отличная библиотека apache, где вы можете достичь своей цели в одной строке кода: org.apache.commons.lang.StringUtils

String delimiter = " ";
StringUtils.join(array, delimiter);
Другие вопросы по тегам