Java运行报错:substring(Unknown Source)

 时间:2024-11-01 16:32:48

Java中使用String类的方法时,有一些方法必须注意,因为在编译时,Java编译器并不会报错,然而在运行时会出错,原因在于对字符串的操作考虑不周。

工具/原料

Eclipse

String类的方法

Stringsubstring(intarg0)是获取当前字符串对象索引为arg0及其之后的字符串内容,作为新的子字符串。

方法/步骤

1、问题:对于String类的方法substring(intar壹执慵驾g)或者substring(intarg0,i荏鱿胫协ntarg1);有如下在运行时报错的代码:Stringmsg=fromServer.readUTF();intm1=msg.indexOf(":");Stringmsgnew=newString(msg.substring(m1));//==>此行报错

2、分析:然而代码的错误,可能并不只在报错的那一行;可以看到intm1=msg.indexOf(":");是有问题的,在运行时,如果msg中正好不含有“:”时,这行代码会返回-1,如此,代码msg.substring(m1)越界,即在运行时抛出字符串下表越界的异常。

3、解决:在不确定时,先做判断,判断msg中鋈守踬痊是否含有“:”,然后使用substring(intarg0)。Stringmsg=fromServer.readUTF();intm1=0;S墉掠载牿tringmsgnew=newString();if(msg.contains(":")){m1=msg.indexOf(":");msgnew=newString(msg.substring(m1));}

提高电脑性能:初始化电脑! 对于浏览器的安全防护都有哪些 刻舟求剑怎么解释 如何正确使用《一起去捉妖》的聚妖铃铛? 酸菜莲藕玉米炖肉
热门搜索
观音莲图片 王不留行图片 卡通鱼图片 漫画女孩 苏州园林图片