Java函数实现将字符串用指定字符分割成数组的方法
在Java中,字符串可以通过指定字符来进行分割,这个方法在实际开发中非常常见。Java提供了自带的split()函数来实现字符串的分割,但是split()函数也有其局限性,常常需要我们自己写函数来实现特定的需求。
这里将介绍两种常见的字符串分割方法,一种是基于split()函数的方法,一种是自己编写函数的方法。
1. 基于split()函数的方法
在Java中,字符串split()函数是非常实用的一个函数,我们可以通过指定的字符将字符串分割成多个子串。
String字符串的split()函数原型如下:
public String[] split(String regex);
其中,regex表示一个正则表达式,通过这个正则表达式来指定分割字符。
比如下面的代码,
String str = "Hello World";
String[] arr = str.split(" ");
for(String s : arr) {
System.out.println(s);
}
输出结果为:
Hello
World
上面的代码将字符串按照空格字符进行分割,生成了含有两个元素的数组。
2. 自己编写函数的方法
如果split()函数无法满足我们的需求,那么我们就需要自己写函数实现字符串的分割。
下面是一个将字符串用指定字符分割成数组的方法的函数实现:
public static String[] splitString(String str, char ch) {
List<String> list = new ArrayList<>();
int len = str.length();
int start = 0;
for (int i = 0; i < len; i++) {
if (str.charAt(i) == ch) {
if (i != start) {
list.add(str.substring(start, i));
}
start = i + 1;
}
}
if (start < len) {
list.add(str.substring(start));
}
String[] arr = new String[list.size()];
list.toArray(arr);
return arr;
}
上面的代码中,我们使用了List来保存分割后的子串,然后将List转换为数组返回。
这个方法的流程是先将字符串转换成char数组,然后将每个字符和指定字符进行比较,如果相等就分割成一个子串并添加到List中,否则继续向下遍历,直到遇到指定字符。最后如果最后一个子串不为空,也要添加到List中。
这种方法虽然比较繁琐,但是可以实现更灵活的字符串分割需求,比如分割多个字符等。
代码示例:
String str = "Hello,World,Java";
char ch = ',';
String[] arr = splitString(str, ch);
for (String s : arr) {
System.out.println(s);
}
输出结果为:
Hello
World
Java
输出结果和使用split()函数是一样的。
总结
字符串的分割是Java开发中常见的操作之一,在开发中我们可以使用Java自带的split()函数,也可以自己写函数来实现特定的需求。无论是哪种方法,我们都需要先明确分割的规则,然后找到对应的函数来实现。
