java中indexOf()获取指定次数的下标
indexOf() :指定字符在此实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置
Java中提供了四中查找方法:
int indexOf(String str) 返回第一次出现的索引。
int indexOf(String str, int fromIndex)从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
int lastIndexOf(String str) 返回在此字符串中最后定子字符串的索引。
int lastIndexOf(String str, int fromIndex)从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
那么怎么获取指定次数的下标呢,java并没有直接给我们提供,我们自己去实现一下
/**
* 方法重载,赋默认值
* @param str
* @param separator
* @return
*/
public static Map indexMapOf(String str, String separator) {
return indexMapOf(str, separator, 0, null, 1);
} /**
* 具体实现方法
* @param str 源字符
* @param separator 分割符
* @param fromIndex 从第几个下标开始
* @param map Map记录次数对应的下标
* @param key 下标从1开始
* @return
*/
public static Map indexMapOf(String str, String separator, Integer fromIndex, Map map, Integer key) {
if (map == null) {
map = new HashMap();
} int index = str.indexOf(separator, fromIndex); if (index > 0) {
System.err.println(separator +"出现的下标:"+index);
map.put(key, index);
indexMapOf(str, separator, ++index, map, ++key);
} return map;
} public static void main(String[] args) {
String str = "abcde$fgh$ijkl$mn$opqrst$uvxy$z";
System.err.println("字符串为:"+str+" 求'$'出现的次数以及下标");
Map<Integer, Integer> m = indexMapOf(str, "$"); System.err.println("map------------");
for (Map.Entry<Integer, Integer> entry : m.entrySet()) {
System.err.println("第"+entry.getKey() + "次 : 下标为" + entry.getValue());
}
System.err.println("-----找第5次出现的下标-----");
System.err.println("第5次indexOf的数值是:" + m.get(5));
}

java中indexOf()获取指定次数的下标的更多相关文章
- JAVA中如何获取变量的类型
JAVA中如何获取变量的类型? package xiya; public class Demo { public static void main(String[] args) { String ty ...
- Java中动态获取项目根目录的绝对路径
https://www.cnblogs.com/zhouqing/archive/2012/11/10/2757774.html 序言 在开发过程中经常会用到读写文件,其中就必然涉及路径问题.使用固定 ...
- java中indexOf()
Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. 2.int indexOf(String str ...
- Java中indexof()的使用
Java中字符串中子串的查找共有四种方法(indexof()) indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置.如果没有找到子字符串,则返回-1. 如果 starti ...
- java中如何获取昨天的当前日期
在java里,获取昨天的当前日期,可以采用calendar来做,也可以采用date来做:如下: 1.采用calendar来做: Calendar cal=Calendar.getInstance(); ...
- Java中如何获取一个类中泛型的实际类型
本文链接:https://blog.csdn.net/kuuumo/article/details/83021158 _______________________________________ ...
- 在JAVA中如何获取当前源文件名以及代码的行号
在最近经历中,遇见了这样一个问题,如何获取当前源文件名以及代码的行号,只是了解到C语言有预定义宏__FILE__.__LINE__,它们在预处理的时候都已经确定好了,但是在JAVA中应该怎么获取输出呢 ...
- java Calendar Date 获取指定日期所在月或年的第一天和最后一天
一.获取传入日期所在月的第一天 public static Date getFirstDayDateOfMonth(final Date date) { final Calendar cal = Ca ...
- 【Java基础】Java中如何获取一个类中泛型的实际类型
泛型的术语 <>: 念做typeof List<E>: E称为类型参数变量 ArrayList<Integer>: Integer称为实际类型参数 ArrayLis ...
- ThinkPHP中如何获取指定日期后工作日的具体日期
思路: 1.获取到查询年份内所有工作日数据数组2.获取到查询开始日期在工作日的索引3.计算需查询日期索引4.获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_workday ...
随机推荐
- Redis避坑指南:为什么要有分布式锁?
作者:京东保险 张江涛 1.为什么要有分布式锁? JUC提供的锁机制,可以保证在同一个JVM进程中同一时刻只有一个线程执行操作逻辑: 多服务多节点的情况下,就意味着有多个JVM进程,要做到这样,就需要 ...
- Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 1x.x
出现问题原因: nodejs和node-sass版本不匹配 解决办法: 下载node-sass指定版本的nodejs 1)node-sass的节点版本支持政策 ① 支持的 Node.js版本因版本而异 ...
- 【JS入门小游戏】01-骰子游戏
01-骰子游戏 游戏出自Udemy的JS课程中提到的一个游戏,课程主要是对JS部分进行详细的从0开始的讲解,本篇文章是对整个游戏的分析,包括HTMK,CSS和JS,也主要对JS进行刨析. 游戏链接:h ...
- 代码随想录算法训练营day03 | LeetCode 203/707/206
基础知识 数据结构初始化 // 链表节点定义 public class ListNode { // 结点的值 int val; // 下一个结点 ListNode next; // 节点的构造函数(无 ...
- Word 段落首行缩进
描述 使 Word 段落第一行左突出两个字符的位置,即段落首行缩进的方式有两种. "视图"选项卡--"显示"组--标尺 "开始"选项卡--& ...
- RadioGroup 自动换行且保留点击事件
转:(22条消息) RadioGroup 自动换行且保留点击事件_再见孙悟空_的博客-CSDN博客 public class MyRadioGroup extends RadioGroup { pri ...
- windows 10 更新代理
安装 Windows 更新 Windows 更新扫描.下载.安装,每一部分都采用独立的服务. Windows 更新客户端利用 Windows HTTP 服务(WinHTTP)扫描可用更新: Backg ...
- 异常:java.sql.SQLException: HOUR_OF_DAY: 0 -> 1解决
问题:Error attempting to get column 'xxTime' from result set. Cause: java.sql.SQLException: HOUR_OF_DA ...
- 自己使用Git规范流程-记录
配置目录 建立仓库 1.点击"New project" 2.点击"Create blank project" 3.输入仓库名称,点击创建 4.仓库创建完成,个人 ...
- C - Functions again CodeForces - 789C (dp、思维)
C - Functions again CodeForces - 789C #include<iostream> #include<cstdio> #include<cm ...