如何拆分逗号分隔的string?

我有一个未知长度的string,看起来像这样

"dog, cat, bear, elephant, ..., giraffe" 

在逗号分隔这个string的最佳方式是什么,这样每个单词可以成为一个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. 

你可以这样做:

 String str = "..."; List<String> elephantList = Arrays.asList(str.split(",")); 

基本上.split()方法将根据(在这种情况下)分隔符来分割string,并返回一个string数组。

然而,你似乎是在一个string列表而不是一个数组,所以数组必须通过使用Arrays.asList()实用程序变成一个列表。 就像参考一样,你也可以这样做:

 String str = "..."; ArrayList<String> elephantList = Arrays.asList(str.split(",")); 

但是通常编程到一个接口而不是实际的具体实现是更好的做法,所以我会推荐第一个选项。

那么,你想分裂 ,对吧?

 String animals = "dog, cat, bear, elephant, giraffe"; String[] animalsArray = animals.split(","); 

如果你想额外摆脱项目周围的空格:

 String[] animalsArray = animals.split("\\s*,\\s*"); 

一个小的改进:上面的解决scheme不会删除实际string中的前导或尾随空格。 调用split之前最好调用trim。 相反,

  String[] animalsArray = animals.split("\\s*,\\s*"); 

使用

  String[] animalsArray = animals.trim().split("\\s*,\\s*"); 

你可以拆分它并创build一个数组,然后像数组一样访问

 String names = "prappo,prince,ahsan"; 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*"); 

可以试试这个为我工作

  sg = sg.replaceAll(", $", ""); 

要不然

 if (sg.endsWith(",")) { sg = sg.substring(0, sg.length() - 1); } 

为了完整性,使用番石榴库,你会做: 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,所以如果你需要一个List,像上面一样将它包装在Lists.newArrayList()中。 否则,只需使用Iterable,例如:

 for (String animal : Splitter.on(",").trimResults().split(animals)) { // ... } 

请注意trimResults()如何处理所有的修剪需求,而不必像String.split()那样调整正则expression式的正则expression式 。

如果您的项目已经使用番石榴,这应该是您的首选解决scheme。 请参阅Guava用户指南中的 Splitter文档或javadoc以获取更多configuration选项。

删除所有的空格,并创build一个固定大小不可变的列表(请参阅asList API文档 )

 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中的空格

你可以使用这样的东西:

 String animals = "dog, cat, bear, elephant, giraffe"; List<String> animalList = Arrays.asList(animals.split(",")); 

此外,你会包括库:

 import java.util.ArrayList; import java.util.Arrays; import java.util.List; 

有一个名为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