String方法lastIndexOf、indexOf、split

我们在安卓开发中又是要遍历文件,一般要保留文件路径和文件名,一般文件名为文件路径的一部分。所以我们要用自定义方法去截取那"部分"。

 

/**
     * @param str       原字符串
     * @param indexStr  指定字符串
     * @param isInclude 是否包括指定字符串
     * @return 截取后的字符串
     */
    /*截取最后一部分字符串*/
    public static String getLastindexStr(String str, String indexStr, boolean isInclude) {
        String result = "";
        int start = str.lastIndexOf(indexStr);
        if (start == -1) {
            result = "未找到指定字符串";
        } else {
            if (isInclude) {
                result = str.substring(start);
            } else {
                result = str.substring(start + indexStr.length());
            }
       }
        return result;
    }

比如:

 

str:/storage/emulated/0/360Download/360.apk

indexStr:/

如果isInclude 为true
/360.apk

false

360.apk

 /*截取开始一部分字符串*/
    public static String getFirstindexStr(String str, String firstStr, boolean isInclude) {
        String result = "";
        int start = str.indexOf(firstStr);
        if (start == -1) {
            result = "未找到指定字符串";
        } else {
            if (isInclude) {
                result = str.substring(start);
            } else {
                result = str.substring(start + firstStr.length());
            }
        }
        return result;
    }

 

/**
     * @param string    原字符串
     * @param indexStr  指定字符串
     * @param isInclude 是否包括指定字符串
     * @param index     截取第几个
     * @return 截取后的字符串
     */
    /*截取指定分割第几部分字符串*/
    public static String getIndexStr(String string, String indexStr, int index, boolean isInclude) {
        String result = "";
        int end = 0, start = 0;
        for (int i = 0; i < index; i++) {
            start = string.indexOf(indexStr, end);
            end = start + 1;
            if (start == -1) {
                return "未找到指定字符串";
            }
            Logs.v(string.substring(start));
        }
        end = string.indexOf(indexStr, end);
        if (end == -1) {
            if (isInclude) {
                result = string.substring(start);
            } else {
                result = string.substring(start + indexStr.length());
            }
        } else {
            if (isInclude) {
                result = string.substring(start, end);
            } else {
                result = string.substring(start + indexStr.length(), end);
            }
        }
        return result;
    }

 

 

 

下面方法和上面差不多,但不能包含分隔符

 

 public static String getIndexStr(String str, String indexStr, int index) {
        String result = "";
        String[] split = str.split(indexStr);
        result = split[index];
        return result;
    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值