王囧草

导航

 

java字符串操作扩充灵活截取字符串

public class StringUtil {

 

 static int varlen1;

 static int varlen2;

 

 static String varstr1;

 static String varstr2;

 static String varstr3;

 public static String indexOf(String sourceStr,String indexStr,int indexNum){

 /**

  * 原始字符串:sourceStr

  * 索引字符串:indexStr

  * 固定字符串截取后索引次数的indexNum

  *

  * indexOf("ws++rq++sl++dl","++",4)

  * 结果:dl

  */

 varlen1 = sourceStr.length();

 varlen2 = indexStr.length();

 

 int i=0;//字符串下标

 int n=0;//某字符串在指定字符串中的个数

 int m=0;

 int x=0;

 while (i< varlen1){

 varstr1 = sourceStr.substring(i, i);//substr(sourceStr,i,1);

         varstr2 = indexStr.substring(1,1);//获取指定用于截串的字符串的第一个字符

         

         if(varstr1.equals(varstr2)){

         if(i+varlen2<=varlen1){//判断字符下标

         if(indexStr.equals(sourceStr.substring(i, i+varlen2))){

             n++;

             i=i+varlen2;

             }

         }

         }

         i++;

 }

 

 x=n;

 

 if(indexNum <= 0){

 return "";

 }

 

 if(n==0){

 return sourceStr;

 }

 

 if(indexNum==1){

 i=0;

 n=0;

 while(i<varlen1){

 varstr1 = sourceStr.substring(i, i);

 varstr2 = indexStr.substring(1, 1);

 if(null==varstr3){

 varstr3=sourceStr.substring(i, i);

 }else

 varstr3.concat(sourceStr.substring(i, i));

 if(varstr1.equals(varstr2)){

 if(indexStr.equals(sourceStr.substring(i, i+varlen2))){

 n++;

 if(i==0&&n==1){

 m=varlen2;

 }else{

 return sourceStr.substring(m, i);

 }

 }

 }

 i++;

 }

 }

 

 if(indexNum<=n+1){

 i=0;

 n=0;

 int c=0;

 while(i<varlen1){

 varstr1 = sourceStr.substring(i, i);

 varstr2 = indexStr.substring(1, 1);

 if(varstr1.equals(varstr2)){

 if(indexStr.equals(sourceStr.substring(i, i+varlen2))){

 n++;

 if(n+1==indexNum){

 m=i+varlen2;

 c=n;//存储指字符串出现的次数

 }

 if(n-1==c&&c!=0){

 //当上一个条件满足时,下次出现时返回指定索引的字符串

 return sourceStr.substring(m, i);

 }

 i=i+varlen2;

 }else

 i++;

 }else

 i++;

 

 }

 }

 //获取截取后的最后一个字符串

 return sourceStr.substring(sourceStr.lastIndexOf(indexStr)+indexStr.length(),sourceStr.length());

 }

 public static void main(String[] args) {

 System.out.println(indexOf("ws++rq++sl++dl","++",3));

 }

}

喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我!

 

祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!

 

posted on 2020-02-28 16:00  王囧草  阅读(648)  评论(0编辑  收藏  举报