Java运行报错:substring(Unknown Source)
1、问题:
对于String类的方法substring(int arg)或者substring(int arg0, int arg1);
有如下在运行时报错的代码:
String msg =fromServer.readUTF();
int m1 = msg.indexOf(":");
String msgnew = new String(msg.substring(m1));//==>此行报错
2、分析:
然而代码的错误,可能并不只在报错的那一行;可以看到int m1 = msg.indexOf(":");是有问题的,在运行时,如果msg中正好不含有“:”时,这行代码会返回-1,如此,代码msg.substring(m1)越界,即在运行时抛出字符串下表越界的异常。
3、解决:
在不确定时,先做判断,判断msg中是否含有“:”,然后使用substring(int arg0)。
String msg = fromServer.readUTF();
int m1 = 0;
String msgnew= new String();
if(msg.contains( ":")){
m1 = msg.indexOf( ":");
msgnew = new String(msg.substring(m1));
}
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:25
阅读量:78
阅读量:63
阅读量:77
阅读量:58