package com.nantongqingniao;
import java.util.ArrayList;
import java.util.List;
public class Snippet {
// 传入一个字符串,输出某个字符在传入字符串中的所有位置
public static List<Integer> getIndexsOfStr(String src, char c) {
List<Integer> rs = new ArrayList<Integer>();
if (null != src) {
char[] cs = src.toCharArray();
for (int i = 0; i < cs.length; i++) {
if (cs[i] == c) {
rs.add(i);
}
}
}else {
System.out.println("传入字符串是不合理的字符串");
}
return rs;
}
// 传入一个字符串,输出某个字符串在传入字符串中的所有位置
public static List<Integer> getIndexsOfStr(String src, String c) {
//创建rs集合,用于存储字符串c出现的位置索引
List<Integer> rs = new ArrayList<Integer>();
if (null != src && null != c) {
char[] sl = src.toCharArray();
//初始化索引位置为0
int s = 0;
//循环索引位置,取出c在传入字符串中的所有位置
while (s < sl.length) {
//返回指定子字符串在此字符串中第一次出现处的索引,从索引0开始。
s = src.indexOf(c , s);
//判断索引位置是否大于0,如果返回小于0则表示字符串c在传入字符串中不存在,则跳出循环
if (s < 0 ) {
System.out.println("该字符串不存在");
break;
//如果返回大于0,则表示字符串c在传入字符串中存在,将返回的索引位置s添加到rs集合中
}else {
rs.add(s);
}
//下一次索引位置从上一次索引位置返回值+c字符串的长度开始进行循环
s = s + c.length();
}
} else {
System.out.println("不合理的字符串");
}
return rs;
}
public static void main(String[] args) {
//输出某个字符在传入字符串中的所有位置
List<Integer> indexs = getIndexsOfStr("1a22a3444a4b", 'a');
for (Integer index : indexs) {
System.out.print(index + "\t");
}
System.out.println();
//输出某个字符串在传入字符串中的所有位置
List<Integer> indexs2 = getIndexsOfStr("1a3a2a2a2a6a2a7a2a", "2a");
for (Integer index : indexs2) {
System.out.print(index + "\t");
}
}
}
传入一个字符串,输出某个字符或者字符串在传入字符串中的所有位置
最新推荐文章于 2022-07-13 16:36:10 发布