搜索haebwado moreugeteoseo heck提出了问题。

我的代码

int nTimeIdxNum = -1;

                try {
                    nTimeIdxNum = k.indexOf("x22T:");
                }catch(Exception e) {
                    System.out.println(e.getMessage());
                }

                if (nTimeIdxNum > -1) {
                    String local_date = "";
                    System.out.println("k.length() = " + k.length());
                    System.out.println("nTimeIdxNum = " + String.valueOf(nTimeIdxNum));
                    try {
                        local_date = k.substring(nTimeIdxNum, 13);
                    }catch(Exception e) {
                        System.out.println(e.getMessage());
                    }


}

和控制台结果



k.length()= 952
nTimeIdxNum = 495
字符串索引超出范围:-482



为什么如果错误发生的时间足够长。
请帮我

最佳答案



k.substring(nTimeIdxNum, 13);


第二个索引必须大于第一个。

也许您打算写:

k.substring(nTimeIdxNum, nTimeIdxNum + 13);


这将为您提供13个字符的子字符串,从原始nTimeIdxNum的第String个字符开始。

08-04 23:24