如何拆分逗号分隔的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