欢迎访问宙启技术站
智能推送

Java函数实现将字符串用指定字符分割成数组的方法

发布时间:2023-06-17 11:39:22

在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()函数,也可以自己写函数来实现特定的需求。无论是哪种方法,我们都需要先明确分割的规则,然后找到对应的函数来实现。