Перейти к содержимому

Как вывести массив в строку java

  • автор:

Как массив перевести в строку java

Чтобы в java перевести массив в строку, можно использовать статический метод join() класса String , который соединяет элементы массива. В итоговой строке элементы массива разделяются при помощи переданного первым параметром разделителя

String[] words = ["Hello", "World"]; // Разделитель может быть пустой строкой String.join("", words); // "HelloWorld" String.join(", ", words); // "Hello, World" 

Как вывести массив в java

В Java массивы относятся к ссылочному типу данных. Обычный способ вывода не будет работать, мы не увидим содержимое массива. Чтобы вывести на экран массив, нужно использовать статический метод toString() из класса Arrays . Этот метод возвращает текстовое представление массива, которое уже можно вывести на экран:

import java.util.Arrays; String[] fruits = "apple", "pear">; System.out.println(Arrays.toString(fruits)); // => [apple, pear] 

вывод массива в одну строку

Есть массив типа 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.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Вывести массив через запятую

Завершите метод 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 рандомных чисел, через запятую, у.

Эксперт Java

3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
что тебе непонятно?
632 / 348 / 129
Регистрация: 01.02.2020
Сообщений: 1,037
Возьми стандартный метод 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(","); } } } }

что не так?
632 / 348 / 129
Регистрация: 01.02.2020
Сообщений: 1,037

System.out.print(. )

2479 / 1930 / 484
Регистрация: 17.02.2014
Сообщений: 9,206

ЦитатаСообщение от 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()); }

632 / 348 / 129
Регистрация: 01.02.2020
Сообщений: 1,037
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
Сообщений: 669
Coffeini, зачем parallel() ?
632 / 348 / 129
Регистрация: 01.02.2020
Сообщений: 1,037
Для скорости, а что?
219 / 178 / 79
Регистрация: 13.04.2014
Сообщений: 669
и на много быстрее стало?
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397

ЦитатаСообщение от Coffeini Посмотреть сообщение

Для скорости, а что?

При маленьких объемах данных параллельный стрим не просто не будет быстрее работать, а даже медленнее чуть-чуть, т.к. ресурсы будут тратиться на создание новых потоков, так что везде параллельные стримы пихать плохая практика имхо

Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

18966 / 9661 / 2710
Регистрация: 21.10.2017
Сообщений: 21,465

System.out.println(Arrays.stream(array).mapToObj(String::valueOf).collect(Collectors.joining(", ")));

632 / 348 / 129
Регистрация: 01.02.2020
Сообщений: 1,037

ЦитатаСообщение от asdzxc Посмотреть сообщение

и на много быстрее стало?
Не тестировал.

ЦитатаСообщение от GreeNicee Посмотреть сообщение

даже медленнее чуть-чуть,

Ну на маленьких объемах данных вряд ли это будет заметно. А вот на больших.

Добавлено через 5 минут
iSmokeJC, так у меня такое же решение.

219 / 178 / 79
Регистрация: 13.04.2014
Сообщений: 669

помимо ухудшение производительности при параллельных стримах, также может быть получен неожиданный результат стрима. некоторые операции нужно делать по особенному

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 Посмотреть сообщение

Ну на маленьких объемах данных вряд ли это будет заметно. А вот на больших.

для маленьких, легких операций нет смысла делать параллельный стрим, оно не улучшит производительность никак, а сделает хуже, помимо этого его можно написать неправильно

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *