String的split方法

public String[] split(String regex, int limit) 

split方法有两个参数,分别是字符串类型的regex(分隔符),int类型的limit(限制个数)。通过源码可以发现,limit可以分为正数、0、负数,参数控制应用阵列的次数,从而影响结果阵列的长度

  • 如果限制n大于零,则最多应用模式n-1次,数组的长度将不大于*n,数组的最后一个条目将包含最后一个匹配分隔符以外的所有输入。
  • 如果n是非正的,那么将尽可能多次应用该模式,并且该阵列可以具有任何长度。
  • 如果n为零,则将尽可能多次应用模式,数组可以有任何长度,并且将丢弃尾随的空字符串

通过一段代码来解释

public static void main(String[] args) {
		String s = "aa,bb,cc,dd";

        String[] a1 = s.split(",", 2);
        String[] a2 = s.split(",", 0);
        String[] a3 = s.split(",", -1);

        System.out.println(a1.length);
        System.out.println(a2.length);
        System.out.println(a3.length);

        for (int i = 0; i < a1.length; i++) {
            System.out.println(a1[i]);
        }
    }

第一组的结果是2、4、4

public static void main(String[] args) {
		
        String s1 = "aa,bb,cc,dd,";

        String[] b1 = s1.split(",", 2);
        String[] b2 = s1.split(",", 0);
        String[] b3 = s1.split(",", -1);
        
        System.out.println(b1.length);
        System.out.println(b2.length);
        System.out.println(b3.length);
    }

第一组的结果是2、4、5

这样可以得出结论
当n>0时,则将字符串分割为n个字符串
当n<=0时,则将字符串分割为n个字符串,但是当n<0时,也会将后面的分割符继续分割

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
String类中的split方法是用于将一个字符串按照指定的分隔符进行分割,并将分割后的子字符串存储在一个数组中返回。在String类的split方法中,有两种方法重载,一个是split(String regex),另一个是split(String regex, int limit)。其中,split(String regex)方法使用正则表达式作为分隔符进行字符串的分割,而split(String regex, int limit)方法还可以指定分割的次数。 下面是使用字符分割和字符串分割的两个示例方法: 1. 使用字符分割的方法: ```java void Stringsplit(const string& str, const char split, vector<string>& res) { if (str == "") return; string strs = str + split; // 在字符串末尾也加入分隔符,方便截取最后一段 size_t pos = strs.find(split); while (pos != strs.npos) { string temp = strs.substr(0, pos); res.push_back(temp); strs = strs.substr(pos + 1, strs.size()); // 去掉已分割的字符串,在剩下的字符串中进行分割 pos = strs.find(split); } } ``` 2. 使用字符串分割的方法: ```java void Stringsplit(const string& str, const string& splits, vector<string>& res) { if (str == "") return; string strs = str + splits; // 在字符串末尾也加入分隔符,方便截取最后一段 size_t pos = strs.find(splits); int step = splits.size(); while (pos != strs.npos) { string temp = strs.substr(0, pos); res.push_back(temp); strs = strs.substr(pos + step, strs.size()); // 去掉已分割的字符串,在剩下的字符串中进行分割 pos = strs.find(splits); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值