java中截取字符串的方法
admin
2023-02-13 17:19:59
0

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(ivarstr1 = 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(ivarstr1 = 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));
    }
    }

相关内容

热门资讯

山西发布山洪蓝色预警,涉8市4... 2026年7月24日下午,山西省水利厅和山西省气象局联合发布山洪灾害气象风险预警,预计未来12小时,...
中央决定:华润集团董事长调整 2026年7月23日,华润(集团)有限公司召开中层以上管理人员大会。中央组织部有关负责同志宣布了党中...
学习笔记丨“努力让每个孩子都能... 制作:王宇峰 岳小乔 贾雪
活力中国调研行丨一束“光”的故... 它被称为“最快的刀”“最准的尺”“最亮的光”。从一束“光”到一颗“芯”,再到规模千亿的产业集群,今天...
携手前沿技术 共创智能未来 携手前沿技术 共创智能未来 ——来自2026年世界互联网大会数字丝路发展论坛的声音 夏日长安,秦岭叠...
上海浩劢取得桌面式轻型悬臂吊专... 国家知识产权局信息显示,上海浩劢工业科技有限公司取得一项名为“桌面式轻型悬臂吊”的专利,授权公告号C...
毒油风暴未歇民进党却急着上架,... 海峡导报综合报道 岛内毒油食安风暴持续延烧,台北市长蒋万安持续号召民众7·25上凯道,但“食药署”2...
WAIC挤满“卖铲人”,但算力... 2026年的WAIC,机器人依然抢占了绝大多数镜头。但展馆里数量增长最快的,是自称“AI Infra...
对话芯展速许玮:“内存墙”下,... Token经济时代,衡量AI价值的标准,正从模型能力转向Token生产效率。AI因此从工具演变为新的...
菲尔兹奖得主邓煜写过这些诗词 邓煜 李少君 徐俪成 | 澎湃新闻记者 徐萧 整理北京时间7月23日晚,中国数学家王虹、邓煜获颁菲尔...