Java 如何拆分逗号分隔的字符串?
我有一个长度未知的字符串,看起来像这样Java 如何拆分逗号分隔的字符串?,java,string,split,Java,String,Split,我有一个长度未知的字符串,看起来像这样 "dog, cat, bear, elephant, ..., giraffe" String animals = "dog, cat, bear, elephant,giraffe"; String animals_list[] = animals.split(","); 在逗号处分割此字符串以使每个单词成为ArrayList的元素的最佳方式是什么 比如说 List<String> strings = new ArrayList<
"dog, cat, bear, elephant, ..., giraffe"
String animals = "dog, cat, bear, elephant,giraffe";
String animals_list[] = animals.split(",");
在逗号处分割此字符串以使每个单词成为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.
List strings=new ArrayList();
//在此处添加数据,使strings.get(0)等于“dog”,
//get(1)将等于“cat”,以此类推。
您可以这样做:
String str = "...";
List<String> elephantList = Arrays.asList(str.split(","));
但通常更好的做法是编程到接口,而不是实际的具体实现,因此我推荐第一个选项。好吧,您想要拆分,对吗
String animals = "dog, cat, bear, elephant, giraffe";
String[] animalsArray = animals.split(",");
如果要另外消除项目周围的空白:
String[] animalsArray = animals.split("\\s*,\\s*");
一个小的改进:上述解决方案不会删除实际字符串中的前导或尾随空格。最好在调用split之前调用trim。 而不是这个,
String[] animalsArray = animals.split("\\s*,\\s*");
使用
首先你可以像这样拆分名字
"dog, cat, bear, elephant, ..., giraffe"
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*");
有一个名为
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
为了完整起见,使用该库,您可以执行:
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]
请注意trimResults()
如何处理您的所有修剪需求,而不必像String.split()
一样
如果您的项目已经使用番石榴,这应该是您的首选解决方案。有关更多配置选项,请参阅或中的拆分器文档。您可以拆分它并生成阵列,然后像阵列一样访问
String names = "prappo,prince";
String[] namesList = names.split(",");
你可以像
String name1 = namesList [0];
String name2 = namesList [1];
或者使用循环
for(String name : namesList){
System.out.println(name);
}
希望它能对您有所帮助。删除所有空白并创建一个固定大小或不可变的列表(请参见
asList
)
final String str=“狗、猫、熊、大象、长颈鹿”;
List List=Arrays.asList(str.replaceAll(“\\s”,”).split(“,”);
//结果:[狗,猫,熊,大象,…,长颈鹿]
也可以使用
replaceAll(\\s+“,”)
,但最大效率取决于用例。(请参阅@GurselKoca to在Java中删除字符串中的空格)您可以使用类似的方法:
String animals = "dog, cat, bear, elephant, giraffe";
List<String> animalList = Arrays.asList(animals.split(","));
你能试试这个对我有用吗
sg = sg.replaceAll(", $", "");
否则
if (sg.endsWith(",")) {
sg = sg.substring(0, sg.length() - 1);
}
使用以下命令:
List<String> splitString = (List<String>) Arrays.asList(jobtype.split(","));
List splitString=(List)Arrays.asList(jobtype.split(“,”);
在科特林
val stringArray = commasString.replace(", ", ",").split(",")
其中
stringArray
是List
和commasString
是String
,在build.gradle中带有逗号和空格
compile group: 'com.google.guava', name: 'guava', version: '27.0-jre'
然后
public static List<String> splitByComma(String str) {
Iterable<String> split = Splitter.on(",")
.omitEmptyStrings()
.trimResults()
.split(str);
return Lists.newArrayList(split);
}
public static String joinWithComma(Set<String> words) {
return Joiner.on(", ").skipNulls().join(words);
}
公共静态列表splitByComma(字符串str){
Iterable split=拆分器(“,”)上的
.省略空字符串()
.trimpresults()
.split(str);
返回列表。newArrayList(拆分);
}
公共静态字符串joinWithComma(设置字){
返回Joiner.on(“,”).skipNulls().join(单词);
}
享受:)这是一种用逗号分割字符串的简单方法,
import java.util.*;
public class SeparatedByComma{
public static void main(String []args){
String listOfStates = "Hasalak, Mahiyanganaya, Dambarawa, Colombo";
List<String> stateList = Arrays.asList(listOfStates.split("\\,"));
System.out.println(stateList);
}
}
import java.util.*;
用逗号分隔的公共类{
公共静态void main(字符串[]args){
字符串listOfStates=“Hasalak、Mahiyanganaya、Dambarawa、科伦坡”;
List stateList=Arrays.asList(listOfStates.split(“\\,”);
System.out.println(状态列表);
}
}
是的,这是解决方案的一部分。OP似乎是在字符串列表之后,而不是数组。@npinti:yep,+1对你来说,你更快了,我不想复制你的数组。asList()
习惯用法。我一直想了10个小时,然后搜索。不知道这么容易。split();如果要将分割后的项目存储在集合中而不是数组中,该怎么办?使用方法split(“spliting char”)它会分割字符串,并且该方法将使用分割的单词创建字符串数组。请记住,这不会修剪值,因此字符串。get(1)将是“cat”而不是“cat”“str.split
接受正则表达式,因此您可以使用str.split(“,[]*”)
因此删除逗号后的逗号和空格。逗号分隔文件(csv)的引号中可能有逗号,这意味着它不是分隔符。在这种情况下,拆分将不起作用。第二个选项要求转换为ArrayList
。如果需要保留空条目(例如,用于一致的数组长度),请按照第二行使用拆分(“,”,-1),如果使用trim(),则不需要像(“\\s*,\\s*”)
那样进行空格拆分,只需使用(“,”)代码>这将产生相同的结果。我不确定是否有@WIZARD,因为trim只删除字符串的左右空格,而不删除其中的空格。所以trim(“string,with,space”)
将是“string,with,space”
@ThomasLeduc如果string是这样的“狗、猫、熊、大象、长颈鹿”
那么就不需要trim()
,在我们的情况下,如果使用trim()
,那么输出将是“string,with,space”
而不是这个“string,with,space”
trim()
将删除所有空格,而不仅仅是string的左空格和右空格。您对它进行了测试吗?因为我刚刚编写了一个java程序,字符串“string,with,space”。trim()
返回“string,with,space”“
。就像javadoc所说的:返回字符串的副本,省略前导和尾随空格。你错了,@user872858是对的。这段代码我用于JDK。如果需要打印阵列。使用System.out.PrintLn您可以使用Splitter.splitToList,它返回一个不可修改的列表
compile group: 'com.google.guava', name: 'guava', version: '27.0-jre'
public static List<String> splitByComma(String str) {
Iterable<String> split = Splitter.on(",")
.omitEmptyStrings()
.trimResults()
.split(str);
return Lists.newArrayList(split);
}
public static String joinWithComma(Set<String> words) {
return Joiner.on(", ").skipNulls().join(words);
}
import java.util.*;
public class SeparatedByComma{
public static void main(String []args){
String listOfStates = "Hasalak, Mahiyanganaya, Dambarawa, Colombo";
List<String> stateList = Arrays.asList(listOfStates.split("\\,"));
System.out.println(stateList);
}
}