鱼喃

听!布鲁布鲁,大鱼又在那叨叨了

JAVA中subString的一点小缺陷

切不可自以为是

前段时间在用JSP做一个新闻管理系统的时候,由于新闻长度不定,所以梗概中只能截取前面多少字数来显示(也就是我博客这样,但是插件好像有点问题,有空再捣鼓),于是很简单的就想到了substring这个函数啦,但是调试的时有时会出现异常,抛出数组越界异常。

找来找去,最后发现是substring的问题,很纳闷,怎么会有问题呢?上网搜了搜,没找到答案,只能自己想了。后来发现,只要是字数比较短的都会出现异常,于是乎,加上个判断,正常了。

很无语啊,感情您没有判断长度?翻了翻手册,还真是。。。不是说JAVA是最安全的语言么,想写个错误的代码都难?

一直觉得JAVA里的函数都是很给力的,但是竟然有这么不人性化的设计,难道又是历史遗留问题?

附上函数原型以及调用说明

1
2
3
4
5
public String substring(int s, int t)

//s-开始的索引
//t-截止的索引位置
//取得的字符串长度为:t - s;

例如:

1
2
"newnius".substring(3, 5)
// "ni"

注意:一定要判断字符串的长度,数组长度要大于t,不然会抛异常烦死你的