2 u010541711 u010541711 于 2016.03.14 18:21 提问

java大神帮忙看下代码越界问题

package com.net.ch02;

public class Split {

public void func(String str,String s){
    String Str = s+str+s;
    String[]array = new String[100];
    int[]ray = new int[100];

for(int i = 1 ; i<=Str.length();i++ ){
array[i-1] = Str.substring(i-1, i); **
}
int j=0;
** for(int i = 0 ; i <=Str.length()-1;i++){
if (array[i].equals(s)){
ray[j] = i;
j++;
}
}
ray[j]=Str.length();

for(int i =0;i<j;i++){
System.out.print(Str.substring(ray[i]+1, ray[i+1])+"\t");
}
}
public static void main(String[] args) {
String str = "jlkjdsf fjkaf";
String s = " ";
Split sa = new Split();

    sa.func(str,s);
}

}
以上是本人的代码,粗体部分感觉越界了,但是还是能编译过去,谢谢

5个回答

caozhy
caozhy   Ds   Rxr 2016.03.14 18:51
 代码没有越界,只是有一个小问题,因为j++后判断的
所以
for(int i =0;i<j;i++){
->
for(int i =0;i<j-1;i++){


在线测试
http://ideone.com/jU5Sul
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.14 18:45
      粗体的for循环条件有问题,应该是i<Str. length。   
lovelj2012
lovelj2012   2016.03.14 20:41

debug啊,数组越界这种很低级的错误

u010541711
u010541711   2016.03.23 20:24

我也感觉越界了,但是仍然可以运行的

Royal_lr
Royal_lr   Ds   Rxr 2016.03.14 18:42

感觉越界了,,,你运行看看不就知道了吗

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!