java java.lang.StringIndexOutOfBoundsException错误
代码如下:
public class aaa {
public static void main(String[] args) {
// TODO Auto-generated method stub
String collection="1.";
String member="";
String temp=collection;
int pointPosition=0;
int i=1;
while(temp!=null){
pointPosition=temp.indexOf(".");
member=temp.substring(0,pointPosition);
System.out.println("member"+i+"="+member);
temp=temp.substring(pointPosition+1);
System.out.println(temp);
i++;
}
}
}
补充:我想从一串字符串中读出我想要的数字,比如11.12.13.14.用点来区分,如果-1我就读不到正确的数字了啊
while(temp!=null){
pointPosition=temp.indexOf(".");
System.out.println(pointPosition);
if(pointPosition>0){
member=temp.substring(0,pointPosition);
}else break;
System.out.println("member"+i+"="+member);
temp=temp.substring(pointPosition+1);
System.out.println(temp);
i++;
}
输出如下:
2
member1=14
-1 //这里temp应该为空了啊,为什么又循环进去了呢?
有追加谢谢了
弄好了,while判断再加一个temp.length()!=0就可以了,不需要用break,不过还是谢谢各位了,分数只能给一个,这也是没有办法的。多谢
追问:请解释下我这个为什么会越界可以吗?拿俩个数分析下,有追分,谢谢了
答案:member=temp.substring(0,pointPosition);
这段越界了
加上判断就行了
if(pointPosition>0)
member=temp.substring(0,pointPosition);
else
break;
其他:member=temp.substring(0,pointPosition);
这句话改成member=temp.substring(0,pointPosition-1); temp=temp.substring(pointPosition+1);
当然会超出边界吧 (max == null||max.length() pointPosition=temp.indexOf("."); //pointPosition=1
上一个:想编一个java swing的窗口程序,总是不对……怎么办呀T_T(附代码)
下一个:用JavaScript实现动态表格时,如何把input的名字传给Java