Разбить строку в массив
После парса, приходит строка типа: «Москва-Ярославль 04 ясно понятно» . Как ее преобразовать в массив типа : co[] <"Москва-Ярославль", "04", "ясно", "понятно">причем вот это co[] должно динамически изменять имя, так как придет, скажем, таких строк, и должно получиться 5 таких массивов с разными именами..)"Москва-Ярославль",>
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 17 мая 2015 в 18:26
1,000 9 9 серебряных знаков 22 22 бронзовых знака
Что именно парсится? Каким образом будут приходить эти строки? Последовательно в разных ответах сервера или все вместе в одном ответе?
17 мая 2015 в 19:00
@m-g-demin , парсится таблица с помощью jsoup, приходит все в одном ответе
17 мая 2015 в 19:28
а андроид при чем тут?
17 мая 2015 в 19:37
@Nofate, потому что это часть моей программы, которую я под андроид пишу
17 мая 2015 в 19:39
По секрету скажу: что с андроидом, что без него — задача на java решается одинаково. Перед написанием программ под Android настоятельно рекомендую осилить основы языка: ru.stackoverflow.com/questions/416634
17 мая 2015 в 19:43
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Если есть гарантия что в элементах массива отсутствуют пробелы, то очевидное решение
строка_которая_пришла.split(" ")
Отслеживать
ответ дан 17 мая 2015 в 18:30
2,746 15 15 серебряных знаков 26 26 бронзовых знаков
всмысле отсутствуют?
17 мая 2015 в 19:28
Он имеет ввиду то, что split(» «) разбивает по пробелам. И если написать «Иван Петров» то будет два отдельных элемента в массиве. Кстати, полная запись будет примерно такая String[] имяПеременной = строка_которая_пришла.split(» «); т.е. размер массива указывать не нужно
Перевод String в массив чисел int
Есть ли функция, переводящая строку с численными значениями без запятой, разделенными пробелами, в массив int ?
Отслеживать
34.4k 15 15 золотых знаков 65 65 серебряных знаков 94 94 бронзовых знака
задан 7 авг 2015 в 2:28
Екатерина Фомина Екатерина Фомина
63 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Примерно как то так можно — рассплитить в массив строк по разделителю и преобразовать из строк в целочисленное:
public class Main < public static void main(String[] args)< String str = "11 34 3 45 23 5 67"; String strArr[] = str.split(" "); int numArr[] = new int[strArr.length]; for (int i = 0; i < strArr.length; i++) < numArr[i] = Integer.parseInt(strArr[i]); // System.out.println(numArr[i]); >> >
В Java 8 можно сделать в одну строку:
String str = "11 34 3 45 23 5 67"; int[] numArr = Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray();
Отслеживать
ответ дан 7 авг 2015 в 3:54
36.8k 6 6 золотых знаков 47 47 серебряных знаков 124 124 бронзовых знака
- java
- массивы
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Обработка строк через преобразование в массив — 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 студентов
Наши выпускники работают в компаниях:
toCharArray() в Java — Сделать из строки массив чаров
Метод toCharArray() создает из строки массив чаров (от англ. — char).
Синтаксис метода:
public char [ ] toCharArray ( )
Вызов:
char [ ] result = str . toCharArray ( ) ;
Пример:
public class Test < public static void main ( String args [ ] ) < String str = "ABC" ; char [ ] result = str . toCharArray ( ) ; System . out . println ( "Char array:" ) ; for ( int i = 0 ; i < result . length ; i ++ ) System . out . println ( "Element [" + i + "]: " + result [ i ] ) ;
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите следующее:

Комментарии к коду:
У нас есть строка «ABC». С помощью метода toCharArray() мы перевели эту строку в массив чаров .
Для того, чтобы продемонстрировать результат, мы создали цикл, и вывели на экран каждый элемент массива по отдельности.
Данная статья написана Vertex Academy. Можно пройти наши курсы Java с нуля. Детальнее на сайте.
- ← toUpperCase() в Java — сделать буквы заглавными
- equals() в Java — проверить равны ли две строки →
