Java String转List
在Java编程中,有时候我们会遇到需要将一个字符串转换为列表的情况。这种转换可以方便我们对字符串进行分割,提取其中的数据,或者是对字符串进行一些操作后再将结果转换回字符串。在本文中,将详细介绍如何在Java中实现字符串转列表的操作。
方法一:使用split方法
Java中的String类提供了一个split
方法,该方法可以根据指定的分隔符将字符串分割成一个字符串数组。然后我们可以将这个字符串数组转换为列表。下面是一个示例代码:
public static List<String> stringToList(String str, String delimiter) {
String[] arr = str.split(delimiter);
return Arrays.asList(arr);
}
public static void main(String[] args) {
String str = "apple,banana,orange";
String delimiter = ",";
List<String> list = stringToList(str, delimiter);
System.out.println(list);
}
运行以上代码,输出为:
[apple, banana, orange]
上述代码中,我们首先调用split
方法,将字符串str
使用逗号,
分隔成一个字符串数组。然后通过Arrays.asList
方法将数组转换为列表。
方法二:使用StringTokenizer类
除了使用split
方法外,我们还可以使用Java中的StringTokenizer
类来实现字符串转列表的操作。StringTokenizer
类可以根据指定的分隔符将字符串分割成多个token。下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public static List<String> stringToList(String str, String delimiter) {
List<String> list = new ArrayList<>();
StringTokenizer tokenizer = new StringTokenizer(str, delimiter);
while (tokenizer.hasMoreTokens()) {
list.add(tokenizer.nextToken());
}
return list;
}
public static void main(String[] args) {
String str = "apple,banana,orange";
String delimiter = ",";
List<String> list = stringToList(str, delimiter);
System.out.println(list);
}
运行以上代码,输出为:
[apple, banana, orange]
在上述代码中,我们首先创建一个StringTokenizer
对象,通过调用它的hasMoreTokens
和nextToken
方法,逐个将分隔后的token添加到列表中。
方法三:使用Guava库
Guava是Google提供的一个Java工具库,其中包含了丰富的工具类和方法。Guava提供了一个Splitter
类,可以很方便地将字符串分割成多个部分,并得到一个Iterable
对象,我们可以将其转换为列表。下面是一个示例代码:
import com.google.common.base.Splitter;
import java.util.List;
import java.util.stream.Collectors;
public static List<String> stringToList(String str, String delimiter) {
Splitter splitter = Splitter.on(delimiter).omitEmptyStrings().trimResults();
Iterable<String> iterable = splitter.split(str);
return StreamSupport.stream(iterable.spliterator(), false)
.collect(Collectors.toList());
}
public static void main(String[] args) {
String str = "apple,banana,orange";
String delimiter = ",";
List<String> list = stringToList(str, delimiter);
System.out.println(list);
}
运行以上代码,输出为:
[apple, banana, orange]
上述代码中,我们使用了Guava中的Splitter
类,通过on
方法指定分隔符,omitEmptyStrings
方法忽略空字符串,trimResults
方法去除前后空格。最后通过Java 8中的StreamSupport
类将Iterable
对象转换为列表。
总结
在本文中,我们介绍了三种在Java中实现字符串转列表的方法:使用split
方法、StringTokenizer
类和Guava库。这些方法各有优劣,开发者可以根据实际情况选择合适的方法来进行字符串转列表的操作。