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. Linux安装Redis、后台运行、系统自启动

    Redis是用C语言编写的开源免费的高性能的分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库. 安装 1)从官网http://download.redis.io/releases/下载re ...

  2. 错误:EfficientDet网络出现"No boxes to NMS"并且mAP:0.0的解决方案

    近日,在使用谷歌新推出来的一个网络EfficientDet进行目标检测训练自己的数据集的时候,出现了如下错误: 其中项目开源地址是:https://github.com/toandaominh1997 ...

  3. ES6和node的模块化

    ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量.CommonJS 和 AMD 模块,都只能在运行时确定这些东西.比如,CommonJS 模块就是对象,输入 ...

  4. Asciidoctor-pdf生成pdf文件

    本文使用asciidoc语法编写. = Asciidoctor-pdf生成pdf文件 Pinnsvin Pinnsvin@163.com v1.0 {docdate} :plantuml-server ...

  5. java基础之----23种设计模式(单例模式)

    概述 提到单例模式,我们并不陌生,而且面试中也常常会问单例模式相关的问题,接下来就谈谈单例模式,这篇文章会回答如下几个问题: 什么是单例模式? 单例模式有几种实现方式,以及各种实现方式的优劣? 单例模 ...

  6. 解决树莓派鼠标延迟/迟滞问题-转CSDN博主“Deiki”-sunziren

    本文转自CSDN: https://blog.csdn.net/deiki/article/details/73252942,因为我在为树莓派安装2.4G无线键鼠的时候,鼠标反应很慢,卡顿严重(换成有 ...

  7. nginx: [warn] conflicting server name "aaa.7yule.cn" on 0.0.0.0:80, ignored

    故障现象: 修改nginx配置参数后,使用nginx -t检查配置,出现告警提示 nginx: [warn] conflicting server name "aaa.7yule.cn&qu ...

  8. 纪中23日c组T2 2159. 【2017.7.11普及】max 洛谷P1249 最大乘积

    纪中2159. max 洛谷P1249 最大乘积 说明:这两题基本完全相同,故放在一起写题解 纪中2159. max (File IO): input:max.in output:max.out 时间 ...

  9. day36_tomcat丶servlet入门

    web相关概念回顾 软件架构 常见的软件结构有下面2种 Client/Server 客户端/服务器端 简称C/S 特点:在用户本地有一个客户端程序,在远程有一个服务器端程序 如:QQ,迅雷...等等 ...

  10. final 和 static之间的区别和联系

    关键字final和关键字static两者的含义并不相似,但是笔者常常使用一段时间后就会忘记它们之间的区别,因为它俩总是相伴着出现.当只出现其中一个时,就对其代表的含义不甚清晰了.故而特地将相关知识点记 ...