import java.util.ArrayList;
import java.util.List;
/**
* @author thinkpad
*
*/
public class TestString {
/**
* 循环查找
* @param source
* @param target
* @param num
* @param result
*/
public static List<String> findStringArray(String source,String target,int num){
List<String> result = new ArrayList<String>(0);
int index =0;
int preIndex = 0;
int sum = 0;
while((index=source.indexOf(target,index))!=-1){
index ++;
sum++;
if(sum > 0 && sum%num==0){
String s =source.substring(preIndex, index);
s=s.substring(0, s.lastIndexOf(target));
preIndex =index;
result.add(s);
}
}
if(preIndex<source.length()){
if(source.endsWith(target)){
String s =source.substring(preIndex);
int lastCommaIndex = s.lastIndexOf(target);
if(lastCommaIndex!=-1){
s=s.substring(0,lastCommaIndex);
}
result.add(s);
}else{
result.add(source);
}
}
return result;
}
/**递归查找
* @param source
* @param target
* @param num
* @param result
* @return
*/
public static boolean findStringArrayWhile(String source,String target,int num,List<String> result ){
int index =0;
int sum = 0;
if(source.indexOf(target)==-1){
result.add(source);
return true;
}
while((index=source.indexOf(target,index))!=-1){
sum++;
index++;
if(sum > 0 && sum%num==0){
String s =source.substring(0, index);
s=s.substring(0, s.lastIndexOf(target));
result.add(s);
if(source.length()<index){
result.add(source);
return true;
}
source = source.substring(index);
boolean t =findStringArrayWhile(source, target, num, result);
if(t){
return true;
}
}
}
if(source.length()%num<num){
result.add(source);
return true;
}
return false;
}
/**
* @param args
*/
public static void main(String[] args) {
String source="1,2,3,4,5,6,7,8,9,0";
List<String> result =new ArrayList<String>(0);
result=findStringArray("1,2,3,4", ",",4);
findStringArrayWhile(source, ",", 10, result);
for(String s:result){
System.out.println(s);
}
}
}
欢迎测试,欢迎提bug
java 中将以逗号分隔的字符串按照N个一组划分的方法
最新推荐文章于 2022-12-29 09:46:40 发布