Преобразовать строку в массив
Как преобразовать строку в массив String []?
Есть переменная, в которой записан текст из файла. Эту переменную необходимо преобразовать в.
Не могу нигде найти — как преобразовать массив int в строку, или сразу в число
Народ помогите пожалуйста. Число long 9876543210 было переведено в int namArr = .
Преобразовать строку бит в строку байт в кодировке utf8
Всем доброго времени суток! Пишу программу шифровки/расшифровки DES (лабораторная работа).
Преобразовать строку в формулу
Как преобразовать формулу введенную в EditText типа String в решаемую формулу (Java)?
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
vernon, в массив символов? Так — «строка».toCharArray(); Или строка состоит из нескольких слов через пробел и из них надо сделать массив? Так — «строка».split(» «);
44 / 44 / 37
Регистрация: 11.12.2012
Сообщений: 200
Записей в блоге: 2
1 2 3 4 5 6 7 8
public static void main(String. args){ String line = "Преобразовать в массив"; String[] arrline = line.split(" "); for(String readarr: arrline){ System.out.println(readarr); } }
Примеры преобразования списка в массив на Java
Хотя список является более мощным, чем массив в Java, в некоторых случаях мы хотим преобразовать первое в структуру данных последнего. Например, если есть существующий API, где ожидаемым параметром является массив, а у вас есть список.

Если вы оказались в таких ситуациях, вот несколько способов, которые могут помочь преобразовать список в массив на Java.
Преобразовать список в массив с помощью toArray()
Самый простой способ преобразовать список в массив – это использовать встроенный метод toList(). Вот код:
Object[] toArray()
Этот метод не имеет аргумента и возвращает Object Array. Он создаёт новый массив, содержащий все элементы списка. Пример:
List myList = new ArrayList(); myList.add(«Apple»); myList.add(«Banana»); myList.add(«Orange»); Object[] myArray = myList.toArray(); for (Object myObject : myArray)
Как показано, toArray() возвращает массив объектов. myArray будет иметь 3 элемента – это то же самое, что и исходный список. Следовательно, ниже ожидаемый результат:
Apple
Banana
Orange
Обратите внимание, что тип возвращаемого значения – строго объектный массив. Если мы попытаемся привести результат к другому типу массива (например, массив строк), будет сгенерировано исключение.
List myList = new ArrayList(); myList.add("Apple"); myList.add("Banana"); myList.add("Orange"); String[] myArray = (String[]) myList.toArray();
И ниже результат, когда код выше выполняется. ClassCastException выдает во время выполнения.
Exception in thread «main» java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
at Test.main(Test.java:10)
toArray() должен возвращать «безопасный» массив – это означает, что List не будет ссылаться на элементы возвращаемого массива. Другими словами, если вы измените массив, список не будет затронут. Рассмотрим пример ниже:
List myList = new ArrayList(); myList.add(«Apple»); myList.add(«Banana»); myList.add(«Orange»); Object[] myArray = myList.toArray(); myArray[0] = «X»; myArray[1] = «Y»; myArray[2] = «Z»; for (String myString:myList)
Изменение в результате (myArray) не повлияет на исходный список (myList). Следовательно, выходные данные кода будут отображать исходное содержимое списка, как показано ниже:
Apple
Banana
Orange
Конвертировать список в массив с помощью toArray (T [] a)
Если мы хотим, чтобы результат toArray возвращал определенный тип массива (например, массив строк), мы можем передать, какой тип он должен вернуть. Вот синтаксис:
T[] toArray(T[] a)
JavaDoc говорит, что параметр – это «массив, в котором должны храниться элементы этого списка, если он достаточно большой; в противном случае для этой цели выделяется новый массив того же типа».
List myList = new ArrayList(); myList.add(«Apple»); myList.add(«Banana»); myList.add(«Orange»); String[] myArray = myList.toArray(new String[0]); for (String myString : myArray)
Код передает массив String длиной 0. Поскольку элементы не помещаются, создается новый массив Array и возвращается вызывающей стороне.
В качестве альтернативы, мы можем передать массив, достаточно большой, чтобы содержать элементы списка. Вот пример:
List myList = new ArrayList(); myList.add(«Apple»); myList.add(«Banana»); myList.add(«Orange»); String[] myArray = new String[3]; myList.toArray(myArray); for (String myString:myArray)
Нам даже не нужно присваивать возврат метода toArray переменной. Содержимое хранится в параметре. myArray в этом случае получит значения List. И если мы запустим его, будет отображено следующее:
Apple
Banana
Orange
Подводный камень, который следует учитывать, заключается в том, что мы не можем автоматически преобразовать список определенного типа в массив другого типа с помощью метода toArray. Вот пример кода:
List myList = new ArrayList(); myList.add("100"); myList.add("200"); myList.add("300"); Integer[] myArray = myList.toArray(new Integer[0]);
Приведенный выше код создаст исключение ArrayStoreException. Потому что он не может преобразовать список строк в массив целых чисел.
Exception in thread "main" java.lang.ArrayStoreException at java.lang.System.arraycopy(Native Method) at java.util.Arrays.copyOf(Arrays.java:2775) at java.util.ArrayList.toArray(ArrayList.java:327) at Test.main(Test.java:10)
Используем пользовательский код
Можно использовать нашу собственную логику. Этот способ имеет некоторые преимущества. Вот простой пользовательский код для преобразования списка строк в массив строк Java.
List myList = new ArrayList(); myList.add(«Apple»); myList.add(«Banana»); myList.add(«Orange»); String[] myArray = new String[myList.size()]; for (int i = 0; i < myList.size(); i++) < myArray[i] = myList.get(i); >for (String myString : myArray)
В итоге, получаем результат:
Apple
Banana
Orange
Одним из преимуществ использования пользовательского кода является то, что у нас может быть дополнительная логика, не включенная в готовые вспомогательные классы.
Например, если мы хотим преобразовать исходные элементы списка в элементы конечного массива. Вот простой пример:
List myList = new ArrayList(); myList.add(«Apple»); myList.add(«Banana»); myList.add(«Orange»); String[] myArray = new String[myList.size()]; for (int i = 0; i < myList.size(); i++) < myArray[i] = "This is " + myList.get(i); >for (String myString : myArray)
Как показано, оригинальный список содержит названия фруктов. Результат содержит фразы, которые используют фрукты. Вывод:
This is Apple
This is Banana
This is Orange
Переделать список строк в целочисленный массив
Вот еще один пример пользовательского кода, в котором мы переделаем список строк в массив целых чисел.
List myList = new ArrayList(); myList.add(«100»); myList.add(«200»); myList.add(«300»); Integer[] myArray = new Integer[myList.size()]; for (int i = 0; i < myList.size(); i++) < myArray[i] = Integer.valueOf(myList.get(i)); >for (Integer myInt : myArray)
Результат показан ниже:
100
200
300
В двойной массив
Аналогично, здесь приведен пример пользовательского кода, который преобразует List of String в массив значений Double.
List myList = new ArrayList(); myList.add(«100.50»); myList.add(«200.75»); myList.add(«300.98»); Double[] myArray = new Double[myList.size()]; for (int i = 0; i < myList.size(); i++) < myArray[i] = Double.valueOf(myList.get(i)); >for (Double myDouble : myArray)
С использованием потоков в Java 8
Поток Java 8 предлагает очень крутые способы преобразования объектов.
List myList = new ArrayList(); myList.add("Apple"); myList.add("Banana"); myList.add("Orange"); String[] myArray = myList.stream().toArray(String[]::new);
Средняя оценка 3.6 / 5. Количество голосов: 5
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Помогите улучшить статью.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.
Как преобразовать строку в массив java
Чтобы преобразовать строку в массив строк в Java, нужно использовать метод строки split() , передав туда регулярное выражение в качестве разделителя:
String text = "one two three"; String[] words = text.split(" "); System.out.println(Arrays.toString(words)); // => ["one", "two", "three"]
Обработка строк через преобразование в массив — Java: Массивы
Решить ее можно многими способами. Чем больше называет человек — тем лучше. Разберем решение через массив. Для этого воспользуемся методом строки split() , который разделяет строку на массив используя указанный разделитель:
class MyStringUtils public static String capitalizeWords(String sentence) // split разделяет строку по пробелу var words = sentence.split(" "); // . > >
Следующим шагом нужно обойти массив получившихся слов и преобразовать первую букву каждого слова к верхнему регистру. Сделаем это с помощью метода StringUtils.capitalize() . Затем, соединим получившиеся слова в строку, которую и вернем наружу.
import org.apache.commons.lang3.StringUtils; class MyStringUtils public static String capitalizeWords(String sentence) // split разделяет строку по пробелу var words = sentence.split(" "); for (var i = 0; i words.length; i++) // Приводим первую букву слова к верхнему регистру // И заменяем слово в массиве words[i] = StringUtils.capitalize(words[i]); > // Соединяет массив используя разделитель return String.join(" ", words); > >
Так как строки неизменяемые, то capitalize() просто возвращает новое значение, но не меняет старое. Поэтому нужно не забыть выполнить замену старого слова на новое: words[i] = .
В конце появляется массив из которого нужно снова собрать строку. Сделать это проще всего с помощью метода String.join() , который соединяет элементы массива в строку используя указанный соединитель. В нашем случае пробел.
У этой задачи есть и другое решение, с помощью класса StringJoiner . Этот класс работает как StringBuilder , но дополнительно позволяет указывать соединитель:
import org.apache.commons.lang3.StringUtils; class MyStringUtils public static String capitalizeWords(String sentence) // split разделяет строку по пробелу var words = sentence.split(" "); // Указываем соединитель var result = new StringJoiner(" "); for (var word : words) // Приводим первую букву слова к верхнему регистру // Добавляем полученное слово в StringJoiner при помощи метода add() result.add(StringUtils.capitalize(word)); > // Соединяет части строки используя соединитель return result.toString();
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
