软考
APP下载

java 字符串转数组

在 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 = Arrays.asList(arr);

```

执行这段代码后,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 类只是将字符串分隔成多个子字符串,不会去除分隔符,也不能同时指定多个分隔符。

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库