public String[] split(String sourceStr,String regex){
String[] xzkb=new String[sourceStr.length()];//这句是定义一个数组比如sourceStr是我很爱你,你很爱我,我们爱对方
int i=0;
int k=0;
for(i=0;i<sourceStr.length();i++){
int j=sourceStr.indexOf(regex,i);//寻找regex在sourceStr中i位置以后出现的位置(regex就是逗号)
if (j<=0) break;//返回的j是4
xzkb[k]=sourceStr.substring(i,j);//sourceStr.substring(0,4)结果xzkb[0]=我很爱你
k++;
i=j+regex.length()-1;//这句是什么意思呢?为什么加regex.length()-1,regex是逗号字符啊 它没有长度啊 ?我不明白
}
if(i<sourceStr.length())//这里的长度是剩下的字符串 ,你很爱我,我们爱对方 的长度吗?
{
xzkb[k]=sourceStr.substring(i,sourceStr.length());
k++;
}
String[] s=new String[k];
for(i=0;i<k;i++)
s[i]=xzkb[i];
return s;
}
String[] xzkb=new String[sourceStr.length()];//这句是定义一个数组比如sourceStr是我很爱你,你很爱我,我们爱对方
int i=0;
int k=0;
for(i=0;i<sourceStr.length();i++){
int j=sourceStr.indexOf(regex,i);//寻找regex在sourceStr中i位置以后出现的位置(regex就是逗号)
if (j<=0) break;//返回的j是4
xzkb[k]=sourceStr.substring(i,j);//sourceStr.substring(0,4)结果xzkb[0]=我很爱你
k++;
i=j+regex.length()-1;//这句是什么意思呢?为什么加regex.length()-1,regex是逗号字符啊 它没有长度啊 ?我不明白
}
if(i<sourceStr.length())//这里的长度是剩下的字符串 ,你很爱我,我们爱对方 的长度吗?
{
xzkb[k]=sourceStr.substring(i,sourceStr.length());
k++;
}
String[] s=new String[k];
for(i=0;i<k;i++)
s[i]=xzkb[i];
return s;
}
1、第一次循环后j=4
i=j+regex.length()-1=4
即从第五个字符开始往后在查找
2、i<sourceStr.length()
sourceStr.length()是整个字符串长度
此时的i是最后一个regex的位置
这个判断是避免regex在字符串末尾的情况