zoukankan      html  css  js  c++  java
  • java字符串操作扩充:灵活截取字符串

    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学习资料的也可以私信我!

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

  • 相关阅读:
    c# 使用 Read 读取数据块
    C# TCP/IP通信,Socket通信例子
    c# virtual 关键字 虚方法
    统计图
    oauth2.0 判断接口是否允许跨域
    OI常用模板合集
    CSP2021游记
    8.16 树上问题模拟赛总结
    8.15 图论模拟赛垫底记
    8.14 字符串模拟赛总结
  • 原文地址:https://www.cnblogs.com/heqingxiaohuo/p/12377596.html
Copyright © 2011-2022 走看看