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

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

java字符串操作扩充:灵活截取字符串的更多相关文章

  1. Java字符串操作及与C#字符串操作的不同

    每种语言都会有字符串的操作,因为字符串是我们平常开发使用频率最高的一种类型.今天我们来聊一下Java的字符串操作及在某些具体方法中与C#的不同,对于需要熟悉多种语言的人来说,作为一种参考.进行诫勉 首 ...

  2. [转]Python 字符串操作实现代码(截取/替换/查找/分割)

    原文地址:http://www.jb51.net/article/38102.htm ps:好久没更新python代码了,这次用到了字符串,转来看看 Python 截取字符串使用 变量[头下标:尾下标 ...

  3. StringsUtil字符串工具类---灵活截取

    package com.js.ai.modules.pointwall.interfac; import javax.print.attribute.standard.MediaName; publi ...

  4. shell字符串操作之cut---实现字符串截取

    shell中(字符串截取) cut是以每一行为一个处理对象的,这种机制和sed是一样的.(关于sed的入门文章将在近期发布) 2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切 ...

  5. Python(字符串操作实例1)一个字符串用空格隔开

    # 将字符中单词用空格隔开# 已知传入的字符串中只有字母,每个单词的首字母大写,# 请将每个单词用空格隔开,只保留第一个单词的首字母大写传入:“HelloMyWorld”# 返回“Hello my w ...

  6. Golang之字符串操作(反转中英文字符串)

    //字符串反转package main import "fmt" func reverse(str string) string { var result string strLe ...

  7. shell编程常用的截取字符串操作

    1.          常用的字符串操作 1.1.           替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...

  8. [No0000A4]DOS命令(cmd)批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度

    1.替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串.举例说明其功能:========================================= @echo off set a ...

  9. JAVA作业—字符串操作

    ------------恢复内容开始------------ ------------恢复内容开始------------ ------------恢复内容开始------------ ------- ...

随机推荐

  1. 常用MySQL操作

    常用MySQL操作 更改MySQL数据库root的密码 将绝对路径加入环境变量并设置开机启动 # PATH=$PATH:/usr/local/mysql/bin # echo "PATH=$ ...

  2. Sublime text3的安装以及python开发环境的搭建

    作者:struct_mooc 博客地址:https://www.cnblogs.com/structmooc/p/12376601.html 一. Sublime text3的安装 1.sublime ...

  3. 网页延迟加载动画的实现-WOW.js

    网页内容一开始不显示,随着鼠标下拉延迟显示,还有时间差 一开始觉得好难好复杂好高大上,直到我发现 wow.js …… 首先是演示地址:https://www.delac.io/wow/ 嗯,狗子确实很 ...

  4. centos5,6 系统启动流程

    linux内核特点: 支持模块化:模块文件的名字以.ko(kernel object)结尾 支持内核运行时,动态加载和卸载模块文件. linux内核组成部分: 核心文件:/boot/vmlinuz-V ...

  5. Bellman-ford算法 无向图

    // 单源最短路问题 // Bellman-Ford算法 // 复杂度O(V*E) //! 可以判断负圈 #include <cstdio> #include <iostream&g ...

  6. 使用TensorRT对人脸检测网络MTCNN进行加速

    前言 最近在做人脸比对的工作,需要用到人脸关键点检测的算法,比较成熟和通用的一种算法是 MTCNN,可以同时进行人脸框选和关键点检测,对于每张脸输出 5 个关键点,可以用来进行人脸对齐. 问题 刚开始 ...

  7. 重构与动态为angularjs栏位赋值或获取值

    先来看下面一段html: 这个ng-model名称带有一定的规律带有序号. 先来实现数据绑定,从数据取到数据后,为ng-model绑定相对应的值: var c = response.data $sco ...

  8. React HOC(高阶组件)

    一.定义 高阶函数:函数接受函数作为输入,或者输出一个函数. 高阶组件:接受React组件作为输入,或是输出一个组件.即hocFactory:: W: React.Component => E: ...

  9. Linux基础:df命令总结

    本文只总结一些常用的用法,更详细的说明见man df和 df --help. df命令 df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计. df命令主要是从各文件系统的Super b ...

  10. 纪中21日c组模拟赛

    AWSL  AWSL  AWSL  AWSL AWSL  AWSL  AWSL  AWSL AWSL  AWSL  AWSL  AWSL AWSL  AWSL  AWSL  AWSL 题解传送 T1  ...