Java运行报错:substring(Unknown Source)

 时间:2026-04-23 10:50:56

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));

}

  • 提高电脑性能:初始化电脑!
  • 对于浏览器的安全防护都有哪些
  • 刻舟求剑怎么解释
  • 如何正确使用《一起去捉妖》的聚妖铃铛?
  • 酸菜莲藕玉米炖肉
  • 热门搜索
    先进事迹材料怎么写 鸡胸肉怎么做好吃 清蒸桂鱼的家常做法 豆浆机怎么打豆浆 豆芽怎么炒好吃 余五笔怎么打 三角形面积怎么算 怎么知道卵子排出来了 sound怎么读 民事起诉状怎么写