Как разделить строку, разделенную запятыми?



У меня есть строка с неизвестной длиной, которая выглядит примерно так



"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.
548   12  

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;

используйте этот :

        List<String> splitString = (List<String>) Arrays.asList(jobtype.split(","));

В Котлин,

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

    Ничего не найдено.