String中subString(int start,int end) index的问题

来源:互联网 发布:p2p平台数据分析指标 编辑:程序博客网 时间:2024/06/06 03:56

这个问题每次遇到很烦的时候就说明,问题虽然小,但是确实没理解明白,试来试去,还是源码解决最靠谱。

/**     * Returns a string containing the given subsequence of this string.     * The returned string shares this string's <a href="#backing_array">backing array</a>.     *     * @param start the start offset. 下标index从start开始     * @param end the end+1 offset. the end目标下标,end = the end+1     *      * 例如:     * Hello World 转char[]={'H','e','l','l','o',' ','W','o','r','l','d'}     * char[0]='H',char[4]='o'     * 从Hello World,截取Hello,start=0,the end =4,end =5.     *      * @throws IndexOutOfBoundsException     *             if {@code start < 0}, {@code start > end} or {@code end > length()}.     */    public String substring(int start, int end) {        if (start == 0 && end == count) {            return this;        }        // Fast range check.        if (start >= 0 && start <= end && end <= count) {             //start是截取源字符串的开始下标,往后截取长度为end-start             //如果start为0,截取长度为5的字符串,end为5            return fastSubstring(start, end - start);        }        throw startEndAndLength(start, end);    }
    /**     * 从start截取length长度的字符串     */    private native String fastSubstring(int start, int length);
阅读全文
0 0
原创粉丝点击