Как массив перевести в строку java
Чтобы в java перевести массив в строку, можно использовать статический метод join() класса String , который соединяет элементы массива. В итоговой строке элементы массива разделяются при помощи переданного первым параметром разделителя
String[] words = ["Hello", "World"]; // Разделитель может быть пустой строкой String.join("", words); // "HelloWorld" String.join(", ", words); // "Hello, World"
вывод массива в одну строку
Есть массив типа String нужно вывести значения массива в одну строку через запятую Пример: молоко, мясо, хлеб как это можно сделать? Пытался с System.out.println(res.replaceAll () но не понимаю как убрать []
Отслеживать
задан 12 фев 2020 в 17:08
47 1 1 серебряный знак 4 4 бронзовых знака
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
String[] strArray = < "молоко", "мясо", "хлеб" >; System.out.println(String.join(", ", strArray));
Отслеживать
ответ дан 12 фев 2020 в 17:12
user176262 user176262
спасибо. Не видел такой метод)
12 фев 2020 в 17:18
@AmoRa Пожалуйста. Знак «галочка» — слева от ответа.
– user176262
12 фев 2020 в 22:23
С помощью метода print(x,+» ,»)
Отслеживать
ответ дан 12 фев 2020 в 17:12
1 2 2 бронзовых знака
тогда будет лишняя запятая в конце
12 фев 2020 в 17:16
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Преобразование массива символов в строку в Java
В этом посте будет обсуждаться, как преобразовать примитивный массив символов в строку в Java.
Преобразование массива символов в строку может быть полезно для манипулирования текстовыми данными или их отображения пользователю. Существует несколько способов преобразования массива символов в строку в Java:
1. Использование String Конструктор
The String класс содержит несколько перегруженных версий своего конструктора. Один из таких конструкторов String(char[]) который принимает массив символов в качестве аргумента и выделяет новую строку, представляющую ту же последовательность символов, которая содержится в массиве символов.
Вывести массив через запятую
Завершите метод public static void printNeatly (int [] array) в классе с именем ‘ArrayPrinter’, чтобы он распечатал номера массива, который он получает, более аккуратно. Между каждым числом должен быть пробел и запятая. не ставьте запятую после последнего числа.
Выведите числа в одну строку, используя System.out.print.
Вы можете опробовать свою печать на этом примере:
int [] массив = ;
printNeatly (массив);
Пример вывода
5, 1, 3, 4, 2
Добавлено через 3 минуты
1 2 3 4 5 6 7 8 9 10 11 12 13
public class ArrayPrinter { public static void main(String[] args) { // You can test your method here int[] array = {5, 1, 3, 4, 2}; printNeatly(array); } public static void printNeatly(int[] array) { // Write some code in here } }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Есть переменная типа int = 1542, нужно вывести это значение в обратном порядке через запятую
Т.е. в консоле должно быть так: 2,4,5,1 Знаю что нужно применять остаток от деления (%10)
Ввод данных через запятую, заполнение массива
Сколько ищу, никак не могу найти. Как можно сделать так, чтобы при вводе чисел в консоль (!через.
Как вывести массив в строку через запятую?
Пытаюсь сделать задание, но возник вопрос как вывести массив в строку чрез запятую в textBox.

Вывести в Label массив из 100 рандомных чисел через запятую
ребят помогите пожалуйста, нужно вывести в лейбл массив из 100 рандомных чисел, через запятую, у.
![]()
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
что тебе непонятно?
636 / 351 / 130
Регистрация: 01.02.2020
Сообщений: 1,042
Возьми стандартный метод Arrays.toString, а потом методом substring убери начало и конец строки.
Регистрация: 30.06.2020
Сообщений: 191
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public class ArrayPrinter { public static void main(String[] args) { // You can test your method here int[] array = {5, 1, 3, 4, 2}; printNeatly(array); } public static void printNeatly(int[] array) { // Write some code in here for(int i = 0; i array.length; i++){ System.out.println(i); if(i array.length - 1){ // one less than in the for loop, so for every other number than the last one System.out.println(","); } } } }
что не так?
636 / 351 / 130
Регистрация: 01.02.2020
Сообщений: 1,042
System.out.print(. )
2510 / 1957 / 489
Регистрация: 17.02.2014
Сообщений: 9,260
Сообщение от Coffeini 
убери начало и конец строки.
1 2 3 4 5 6 7 8 9 10 11
public static void main(String[] args) { int[] array = {5, 1, 3, 4, 2}; printNeatly(array); } public static void printNeatly(int[] array) { StringJoiner stringJoiner = new StringJoiner(", "); for (int aNum : array) stringJoiner.add("" + aNum); System.out.println(stringJoiner.toString()); }
636 / 351 / 130
Регистрация: 01.02.2020
Сообщений: 1,042
Aviz__, а я только до таких способов додумывался.
Кликните здесь для просмотра всего текста
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
public static void printArraySTL(int. array) { String temp = Arrays.toString(array); System.out.println(temp.substring(1, temp.length() - 1)); } public static void printArrayFOR(int. array) { StringBuilder result = new StringBuilder(); for (int i = 0; i array.length; ++i) { result.append(array[i]).append(i == array.length - 1 ? "" : ", "); } System.out.println(result); } public static void printArrayStream(int. array) { System.out.println(Arrays.stream(array).parallel().mapToObj(String::valueOf).collect(Collectors.joining(", "))); } public static void printArrayPrintf(int. array) { System.out.printf(array.length == 0 ? "" : new String(new char[array.length - 1]).replace("\0", "%d ,") + "%d", Arrays.stream(array).boxed().toArray()); }
219 / 178 / 79
Регистрация: 13.04.2014
Сообщений: 670
Coffeini, зачем parallel() ?
636 / 351 / 130
Регистрация: 01.02.2020
Сообщений: 1,042
Для скорости, а что?
219 / 178 / 79
Регистрация: 13.04.2014
Сообщений: 670
и на много быстрее стало?
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
Сообщение от Coffeini 
Для скорости, а что?
При маленьких объемах данных параллельный стрим не просто не будет быстрее работать, а даже медленнее чуть-чуть, т.к. ресурсы будут тратиться на создание новых потоков, так что везде параллельные стримы пихать плохая практика имхо
Am I evil? Yes, I am!
![]()
![]()
16148 / 9781 / 2733
Регистрация: 21.10.2017
Сообщений: 21,659
System.out.println(Arrays.stream(array).mapToObj(String::valueOf).collect(Collectors.joining(", ")));
636 / 351 / 130
Регистрация: 01.02.2020
Сообщений: 1,042
Сообщение от asdzxc 
и на много быстрее стало?
Не тестировал.
Сообщение от GreeNicee 
даже медленнее чуть-чуть,
Ну на маленьких объемах данных вряд ли это будет заметно. А вот на больших.
Добавлено через 5 минут
iSmokeJC, так у меня такое же решение.
219 / 178 / 79
Регистрация: 13.04.2014
Сообщений: 670
помимо ухудшение производительности при параллельных стримах, также может быть получен неожиданный результат стрима. некоторые операции нужно делать по особенному
int[] array = { 5, 1, 3, 4, 2 }; Arrays.stream(array).forEach(System.out::println);
int[] array = { 5, 1, 3, 4, 2 }; Arrays.stream(array).parallel().forEach(System.out::println);
Вернет разный результат при каждом запуске
Чтобы сохранить порядок в терминальной операции нужно использовать forEachOrdered
int[] array = { 5, 1, 3, 4, 2 }; Arrays.stream(array).parallel().forEachOrdered(System.out::println);
2. В параллельных стримах нужно избегать операций, которые работают с каким-либо состоянием, чтобы избежать побочных эффектов
3. Результат findAny() всегда разный.
Операции findFirst(), limit(), skip() могут работать очень медленно в параллельных стримах, потому что нужно синхронизироваться. Но они будут работать одинаково вне зависимости от параллельного или последовательного стрима при ordererd стриме. Можно сделать стрим unordered(), тогда результат будет непредсказуемый, но увеличит производительность для параллельного стрима (для последовательного ничего не меняется)
4. При параллельных стримах нужно по особому писать reduce методы.
Accumulator должен быть ассоциативным
Combiner должен тоже ассоциативным и без сохранения состояния
1 2 3
System.out.println(Arrays.asList(1,2,3,4,5,6) .parallelStream() .reduce(0,(a,b) -> (a-b)));
тут a-b не ассоциативная операция и результат будет всегда разный
5. Во время collect нужно использовать потокобезоспасные коллекции
StreamString> stream = Stream.of("h", "e", "l", "p").parallel(); SetString> set = stream.collect(ConcurrentSkipListSet::new, Set::add, Set::addAll);
Collectors.toConcurrentMap(), Collectors.groupingByConcurrent и тп
если тут использовать обычный HashSet, то можно будет получить ConcurrentModificationException
Добавлено через 4 минуты
Сообщение от Coffeini 
Ну на маленьких объемах данных вряд ли это будет заметно. А вот на больших.
для маленьких, легких операций нет смысла делать параллельный стрим, оно не улучшит производительность никак, а сделает хуже, помимо этого его можно написать неправильно
