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

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

最新文章

  1. 4-iscsi
  2. 微信企业号开发之-如何获取secret 序列号
  3. SELINUX、Security Access Control Strategy &amp;&amp; Method And Technology Research - 安全访问控制策略及其方法技术研究
  4. linux下用户账户切换
  5. [Tomcat 源码分析系列] (附件) : catalina.bat 脚本
  6. IIC,RS485,RS232各种协议手册更新中
  7. Tomcat安全
  8. iOS面试题16719-b
  9. sql 处理以字符隔开的字符串(类似split)
  10. Parsing XML in J2ME
  11. 依赖注入及AOP简述(八)——混合请求模式 .
  12. 基于visual Studio2013解决C语言竞赛题之0423比赛安排
  13. hdu 1299 Diophantus of Alexandria(数学题)
  14. Java Servlet 笔记4
  15. css布局方式总结
  16. python 闭包用法
  17. InnoDB的启动,关闭,恢复
  18. 20个实用的Linux命令
  19. C++笔记--函数
  20. Ubuntu 18.10 使用VMware克隆后,克隆后的机器再手动更改interfaces配置文件后无法启动网络的解决办法

热门文章

  1. SpringCloud之Ribbon负载均衡的入门操作
  2. C#设计模式学习笔记:(18)状态模式
  3. 少量代码设计一个登录界面(二) – .NET CORE(C#) WPF开发
  4. Python3标准库:weakref对象的非永久引用
  5. Vue.js 从源码理解v-for和v-if的优先级的高低
  6. mybatis postgresql 批量删除
  7. linux中关机重启命令
  8. numpy 消除Futurewarning
  9. clr via c# 泛型
  10. 关于PHP连接上MySQL但不能插入数据