Caused by: java.lang.StringIndexOutOfBoundsException: length=5;regionStart=0; regionLength=-1
原因:在截取字符串时,取到了负值:String temp_m = c_mount.substring(0,w);
提示的信息是,这个字符串c_mount的长度是5,从0开始,取到了-1,所以报错了。
应该查找的地方是w,后来发现int w=c_mount.lastIndexOf(getText
(R.string.gram).toString());
分析了一下,发现c_mount是从数据库中取出来的,很可能是数据库中的数据的问题
,打开数据库,查看,发现果然,这个字段不全是相同的单位,有克,有毫升,所以
,分开对待就好了。问题解决。
原因:在截取字符串时,取到了负值:String temp_m = c_mount.substring(0,w);
提示的信息是,这个字符串c_mount的长度是5,从0开始,取到了-1,所以报错了。
应该查找的地方是w,后来发现int w=c_mount.lastIndexOf(getText
(R.string.gram).toString());
分析了一下,发现c_mount是从数据库中取出来的,很可能是数据库中的数据的问题
,打开数据库,查看,发现果然,这个字段不全是相同的单位,有克,有毫升,所以
,分开对待就好了。问题解决。
本文记录了一次因字符串操作不当导致的StringIndexOutOfBoundsException异常处理过程。问题出现在从数据库获取的数据上,由于单位不统一(克和毫升),导致了字符串截取错误。通过调整代码逻辑并检查数据库数据的一致性解决了该问题。
3486

被折叠的 条评论
为什么被折叠?



