Как разделить строку, разделенную запятыми?
У меня есть строка с неизвестной длиной, которая выглядит примерно так
"dog, cat, bear, elephant, ..., giraffe"
каков был бы оптимальный способ разделить эту строку на запятые, чтобы каждое слово могло стать элементом ArrayList?
List<String> strings = new ArrayList<Strings>();
// Add the data here so strings.get(0) would be equal to "dog",
// strings.get(1) would be equal to "cat" and so forth.
12 ответов:
вы могли бы сделать это:
String str = "..."; List<String> elephantList = Arrays.asList(str.split(","));в основном
.split()метод разделит строку в соответствии с (в данном случае) разделителем, который вы передаете, и вернет массив строк.однако, вы, кажется, после списка строк, а не массив, поэтому массив должен быть превращен в список с помощью
Arrays.asList()утилиты. Так же, как FYI вы также можете сделать что-то вроде так:String str = "..."; ArrayList<String> elephantList = (ArrayList<String>)Arrays.asList(str.split(","));но это, как правило, лучше практика программирования на интерфейс, а не на фактическую конкретную реализацию, поэтому я бы рекомендовал 1-й вариант.
Ну, вы хотите сплит, да?
String animals = "dog, cat, bear, elephant, giraffe"; String[] animalsArray = animals.split(",");Если вы хотите дополнительно избавиться от пробелов вокруг элементов:
String[] animalsArray = animals.split("\s*,\s*");
небольшое улучшение: вышеуказанные решения не удаляют начальные или конечные пробелы в фактической строке. Лучше позвонить trim перед вызовом split. Вместо этого,
String[] animalsArray = animals.split("\s*,\s*");использовать
String[] animalsArray = animals.trim().split("\s*,\s*");
вы можете разделить его и сделать массив как массив
String names = "prappo,prince"; String[] namesList = names.split(",");вы можете получить доступ, как
String name1 = names[0]; String name2 = names[1];или с помощью петли
for(String name : namesList){ System.out.println(name); }надеюсь, что это поможет вам .
сначала вы можете разделить имена, как это
String animals = "dog, cat, bear, elephant,giraffe"; String animals_list[] = animals.split(",");получить доступ к вашим животным
String animal1 = animals_list[0]; String animal2 = animals_list[1]; String animal3 = animals_list[2]; String animal4 = animals_list[3];а также вы хотите удалить пробелы и запятую вокруг имен животных
String animals_list[] = animals.split("\s*,\s*");
для полноты картины, используя гуавы библиотека, вы могли бы сделать:
Splitter.on(",").split(“dog,cat,fox”)еще пример:
String animals = "dog,cat, bear,elephant , giraffe , zebra ,walrus"; List<String> l = Lists.newArrayList(Splitter.on(",").trimResults().split(animals)); // -> [dog, cat, bear, elephant, giraffe, zebra, walrus]
Splitter.split()возвращает Iterable, так что если вам нужен список, оберните его вLists.newArrayList()как выше. В противном случае просто идите с Iterable, например:for (String animal : Splitter.on(",").trimResults().split(animals)) { // ... }обратите внимание, как
trimResults()обрабатывает все ваши потребности обрезки без необходимости настройка регулярных выражений для угловых случаев, а сString.split().если ваш проект использует Guava уже, это должно быть вашим предпочтительным решением. См. разделитель документации в Руководство Пользователя Guava или javadocs дополнительные параметры конфигурации.
можно попробовать с этим работал для меня
sg = sg.replaceAll(", $", "");или
if (sg.endsWith(",")) { sg = sg.substring(0, sg.length() - 1); }
удалить все пробелы и создать фиксированного размера или неизменяемые Список (См.
asListAPI docs)final String str = "dog, cat, bear, elephant, ..., giraffe"; List<String> list = Arrays.asList(str.replaceAll("\s", "").split(",")); // result: [dog, cat, bear, elephant, ..., giraffe]можно использовать
replaceAll(\s+", "")но максимальная эффективность зависит от варианта использования. (см. @GurselKoca ответ до удаление пробелов из строк в Java)
Вы можете использовать что-то вроде этого:
String animals = "dog, cat, bear, elephant, giraffe"; List<String> animalList = Arrays.asList(animals.split(","));кроме того, вы бы включить libs:
import java.util.ArrayList; import java.util.Arrays; import java.util.List;
В Котлин,
val stringArray = commasString.replace(", ", ",").split(",")здесь
stringArrayиList<String>иcommasString- этоStringс запятыми и пробелами
есть функция под названием
replaceAll()это может удалить все пробелы, заменив их на все, что вы хотите. В качестве примераString str=" 15. 9 4;16.0 1" String firstAndSecond[]=str.replaceAll("\s","").split(";"); System.out.println("First:"+firstAndSecond[0]+", Second:"+firstAndSecond[1]);даст вам:
First:15.94, Second:16.01
Comments