Преобразование строки в массив java

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

Примеры:

    Метод 1: Наивный подход

  • Шаг 1: Получить строку.
  • Шаг 2: Создайте массив символов той же длины, что и строки.
  • Шаг 3: Перейдите через строку, чтобы скопировать символ с i-го индекса строки в i-й индекс массива.
  • Шаг 4: Вернуть или выполнить операцию над массивом символов.

Ниже приведена реализация вышеуказанного подхода:

У меня есть string="name"; Я хочу преобразовать в массив строк. Как мне это сделать? Есть ли встроенная функция java? Вручную я могу это сделать, но я ищу встроенную функцию java.

Мне нужен массив, где каждый символ строки будет строкой. например, char ‘ n ‘теперь будет строкой "n", хранящейся в массиве.

15 ответов

чтобы начать вас на вашем назначении, String.split разбивает строки на регулярное выражение, это выражение может быть пустой строкой:

избавление от пустой 1-й записи остается в качестве упражнения для читателя: -)

Примечание: в Java 8, пустой первый элемент больше не включается.

вторая строка выделяет строковый массив длиной 1. Обратите внимание, что вам не нужно указывать длину самостоятельно, например:

вместо этого длина определяется количеством элементов в инициализаторе. Используя

создает массив длиной 3.

предполагая, что вам действительно нужен массив односимвольных строк (а не char[] или Character[] )

1. Использование регулярного выражения:

нулевая ширина отрицательного lookahead предотвращает соответствие шаблона в начале ввода, так что вы не получите ведущую пустую строку.

Я думаю, что в этом просто нет необходимости, так как это не будет проще, чем

конечно, если вы настаиваете, вы можете написать:

[редактирование] Если вы хотите однобуквенные строки, вы можете использовать:

Читайте также  Сковорода renard champagne отзывы

к сожалению, s[0] будет пустым, но после этого последуют буквы n,a,m,e. Если это проблема, вы можете использовать, например, System.arrayCopy, чтобы избавиться от первой записи массива.

в java 8 есть метод, с помощью которого вы можете сделать это: toCharArray ():

это приводит к следующему спектру:

string array = массив символов ?

или у вас есть строка с несколькими словами, каждый из которых должен быть элементом массива ?

String[] array = yourString.split(wordSeparator);

преобразовать его в тип Char ?

просто использовать .метод tocharArray () в java

Это должно работать просто отлично в JAVA 8

как уже упоминалось, вы можете легко преобразовать исходную строку "name" в массив символов:

чтобы продолжить этот ход мыслей, вы можете преобразовать массив символов в массив строк:

в этот момент ваш stringArray будет заполнен исходными значениями из вашей исходной строки "name". Например, теперь вызываем

вернет значение " n " (в виде строки) в этот случай.

разделять пустой строкой строку.split () возвращает массив одиночных элементов, содержащий пустую строку. В большинстве случаев вы, вероятно, предпочтете получить пустой массив или null, если вы передали null, что именно то, что вы получаете с org.апаш.палата общин.lang3.StringUtils.split (str).

другой вариант-google guava сплиттер.split () и сплиттер.splitToList () что вернуть итератор и список соответственно. В отличие от версии Apache Splitter будет бросать NPE на null :

Если вам нужен список, а не итератор, используйте сплиттер.splitToList ().

метод String.split будет генерировать пустой 1-й, вы должны удалить его из массива. Это скучно.

вы могли бы использовать string.chars().mapToObj(e -> new String(new char[] )); , хотя это довольно долго и работает только с java 8. Вот еще несколько методов:

string.split(""); (Has an extra whitespace character at the beginning of the array if used before Java 8) string.split("|"); string.split("(?!^)"); Arrays.toString(string.toCharArray()).substring(1, string.length() * 3 + 1).split(", ");

Читайте также  Программа для печати со сканера

последний просто излишне долго, это просто для удовольствия!

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

это делает массив слов, разделяя строку на каждое помещение:

это создает следующий массив:

протестировано в Java 8

здесь есть преобразование простой строки в строковый массив с помощью метода split.

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

Я решил сделать так:

  1. Разбить строку на символы.
  2. Заменить маленькие символы большими.
  3. Массив символов превратить в строку. char[] b;

Я застрял на 3 шаге. Может кто написать как это сделать? Можно объяснением или блоком кода.

7 ответов 7

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

  1. Разбить строку по пробелам на слова и записать в массив
  2. Пройтись по массиву, заменяя первые символы на символы верхнего регистра и складывая в одну строку.

Никаких массивов char использовать не нужно. Вам понадобятся следующие методы String и Character :

  1. split(String regex) — делит строку на массив по какому-то правилу
  2. charAt(int index) — возвращает символ по указанному индексу
  3. toUpperCase(char ch) — переводит в верхний регистр
  4. substring(int beginIndex) — возвращает подстроку, начиная с указанного индекса

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

Проходимся по строке:

    Если символ на данной позиции пробел, то запоминаем это событие

Иначе, если символом на предыдущей позиции был пробел по Java (обычный пробел, табуляция и т.д.) либо начало строки, то заменяем его на символ верхнего регистра

Читайте также  Процессор amd a9 9425 характеристики

Вам понадобятся следующие методы StringBuilder и Character :

  1. length() — возвращает длину строки
  2. charAt(int index) — возвращает символ на заданной позиции
  3. isWhitespace(char ch) — проверяет, является ли символ пробелом по Java
  4. setCharAt(int index, char ch) — заменяет символ на заданной позиции на указанный
  5. toUpperCase(char ch) — переводит в верхний регистр
Ссылка на основную публикацию
Adblock
detector