在 Java 编程中,经常需要将字符串转换成数组。本文将从多个角度分析 Java 字符串转数组的方法。
1. 使用 split() 方法
Java 中,可以使用 split() 方法将一个字符串切割成多个字符串,并将它们保存到字符串数组中。split() 方法的语法如下:
```
public String[] split(String regex)
```
其中,regex 参数是一个正则表达式,用于指定字符串的分隔符。例如,如果要将逗号分隔的字符串切割成多个字符串,可以使用下面的代码:
```
String str = "apple,banana,orange";
String[] arr = str.split(",");
```
执行这段代码后,arr 数组的元素为 ["apple", "banana", "orange"]。
需要注意的是,如果字符串中包含多个连续的分隔符,split() 方法会将它们看作一个分隔符,返回的数组中可能会包含空字符串。例如,如果字符串为 "apple,,orange",会得到 ["apple", "", "orange"]。
此外,split() 方法还有一个重载的版本可以指定切割成的字符串数组的长度,例如:
```
String[] arr = str.split(",", 2); // 将字符串切割成长度为 2 的字符串数组
```
2. 使用 toCharArray() 方法
Java 中的字符串类型为 String,它本质上是一个字符序列。可以使用 toCharArray() 方法将一个字符串转换成字符数组,代码如下:
```
String str = "hello";
char[] arr = str.toCharArray();
```
执行这段代码后,arr 数组的元素为 ['h', 'e', 'l', 'l', 'o']。
3. 使用 StringUtils.split() 方法
在 Apache Commons Lang 项目中,提供了一个 StringUtils 类,它包含了一些方便的字符串处理方法。其中,split() 方法可以将字符串切割成字符串数组,使用方法如下:
```
String str = "apple,banana,orange";
String[] arr = StringUtils.split(str, ",");
```
执行这段代码后,arr 数组的元素为 ["apple", "banana", "orange"]。
需要注意的是,需要先导入 Apache Commons Lang 项目的库文件才能使用 StringUtils 类。
4. 使用 Arrays.asList() 方法
Java 中的 Arrays 类包含了一些方便的数组操作方法。其中,asList() 方法可以将一个数组转换成一个 List,如果传入的参数是一个字符串数组,就可以将字符串数组转换成 List。代码如下:
```
String[] arr = {"apple", "banana", "orange"};
List
```
执行这段代码后,list 列表的元素为 ["apple", "banana", "orange"]。
需要注意的是,asList() 方法返回的是一个固定长度的列表,不能添加或删除元素。如果需要修改列表中的元素,可以使用 set() 方法,例如:
```
list.set(0, "pear"); // 将列表中下标为 0 的元素改为 "pear"
```
5. 使用 StringTokenizer 类
Java 中的 StringTokenizer 类可以将一个字符串按照指定的分隔符切割成多个字符串,使用方法如下:
```
String str = "apple,banana,orange";
StringTokenizer st = new StringTokenizer(str, ",");
while (st.hasMoreTokens()) {
String token = st.nextToken();
// 处理每个字符串
}
```
代码中,st.hasMoreTokens() 方法用于判断是否还有剩余的字符串没有处理,st.nextToken() 方法用于获取下一个字符串。
需要注意的是,StringTokenizer 类只是将字符串分隔成多个子字符串,不会去除分隔符,也不能同时指定多个分隔符。
微信扫一扫,领取最新备考资料