Содержание
Для заданной строки задача состоит в том, чтобы преобразовать эту строку в массив символов в 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 предотвращает соответствие шаблона в начале ввода, так что вы не получите ведущую пустую строку.
Я думаю, что в этом просто нет необходимости, так как это не будет проще, чем
конечно, если вы настаиваете, вы можете написать:
[редактирование] Если вы хотите однобуквенные строки, вы можете использовать:к сожалению, 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[]
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.
В строке содержатся слова с маленьких букв. Нужно заменить первые буквы слов, на большие.
Я решил сделать так:
- Разбить строку на символы.
- Заменить маленькие символы большими.
- Массив символов превратить в строку. char[] b;
Я застрял на 3 шаге. Может кто написать как это сделать? Можно объяснением или блоком кода.
7 ответов 7
Делать можно по-разному, конечно, но в Java есть методы для работы со строками. По-хорошему, нужно делать так:
- Разбить строку по пробелам на слова и записать в массив
- Пройтись по массиву, заменяя первые символы на символы верхнего регистра и складывая в одну строку.
Никаких массивов char использовать не нужно. Вам понадобятся следующие методы String и Character :
- split(String regex) — делит строку на массив по какому-то правилу
- charAt(int index) — возвращает символ по указанному индексу
- toUpperCase(char ch) — переводит в верхний регистр
- substring(int beginIndex) — возвращает подстроку, начиная с указанного индекса
Если в строке есть несколько пробелов и их нужно учитывать при сборке текста обратно, то алгоритм будет такой:
Проходимся по строке:
-
Если символ на данной позиции пробел, то запоминаем это событие
Иначе, если символом на предыдущей позиции был пробел по Java (обычный пробел, табуляция и т.д.) либо начало строки, то заменяем его на символ верхнего регистра
Вам понадобятся следующие методы StringBuilder и Character :
- length() — возвращает длину строки
- charAt(int index) — возвращает символ на заданной позиции
- isWhitespace(char ch) — проверяет, является ли символ пробелом по Java
- setCharAt(int index, char ch) — заменяет символ на заданной позиции на указанный
- toUpperCase(char ch) — переводит в верхний регистр