String的split方法

【推荐】

使用索引访问用String的split方法得到的数组时,需做最后一个分隔符后有无内容 的检查,
否则会有抛IndexOutOfBoundsException 的风险。 说明:String str = "a,b,c,,,"; String[] ary = str.split(",");// 预期大于3,结果是3 System.out.println(ary.length);

package com.baojiwenli;

/**
 *  使用索引访问用String的split方法得到的数组时,需做最后一个分隔符后有无内容 的检查,否则会有抛IndexOutOfBoundsException 的风险。
 *  说明: String str = "a,b,c,,"; String[] ary = str.split(","); // 预期大于3,结果是3 System.out.println(ary.length);
 */
public class JudgeSeparator {
    public static void main (String args[]) {
        String str = "a,b,c,,,";
        // 分割之后的字符串
        String afterSplit[] = str.split(",");
        // 分隔符后  空内容  个数
        int noContent = 0;
        //无内容的分隔符个数
        noContent = hasContent(str);
        for (int i = 0; i < afterSplit.length;  i ++){
            System.out.println(afterSplit[i]);
        }
        // noContent小于0说明分隔符后全部有内容
        if (noContent >= 0) {
            for (int j = 0; j <= noContent; j++) {
                System.out.println("null");
            }
        }
    }
    // 比较分隔符个数和split()方法获取内容的长度,若差值大于等于0则表示分隔符后有内容,不能忽略。
    public static int hasContent(String str) {
        // 拆分字符串
        char tmp = ' ';
        // 分隔符个数
        int count = 0;
        // 无内容的分隔符个数
        int diff = 0;
        for (int i = 0; i < str.length();  i ++) {
            tmp = str.charAt(i);
            if (tmp==',') {
                count = count + 1;
            }
        }
        System.out.println("----------分隔符个数----------"+count);
        diff = count - str.split(",").length;
        System.out.println("----------无内容的分隔符个数----------"+diff);
        return diff;
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值