Java中 获取指定字符串在另一个字符串中出现的次数
方式一
/**
* @param args
*/
public static void main(String[] args) {
String srcText = "Hello World";
String findText = "e";
int num = appearNumber(srcText, findText);
System.out.println(num);
}
/**
* 获取指定字符串出现的次数
*
* @param srcText 源字符串
* @param findText 要查找的字符串
* @return
*/
public static int appearNumber(String srcText, String findText) {
int count = 0;
Pattern p = Pattern.compile(findText);
Matcher m = p.matcher(srcText);
while (m.find()) {
count++;
}
return count;
}
方法二
/**
* @param args
*/
public static void main(String[] args) {
String srcText = "Hello World";
String findText = "e";
int num = appearNumber(srcText, findText);
System.out.println(num);
}
/**
* public int indexOf(int ch, int fromIndex)
* 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索
*
* @param srcText
* @param findText
* @return
*/
public static int appearNumber(String srcText, String findText) {
int count = 0;
int index = 0;
while ((index = srcText.indexOf(findText, index)) != -1) {
index = index + findText.length();
count++;
}
return count;
}
获取第N次出现时的位置
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo {
//判断"Ab2Ad3A4"中"A"出现第二次的位置
public static void main(String[] args) {
String str = "Ab2Ad3A4";
Pattern pattern = Pattern.compile("A");
Matcher findMatcher = pattern.matcher(str);
int number = 0;
while(findMatcher.find()) {
number++;
if(number == 2){//当“A”第二次出现时停止
break;
}
}
int i = findMatcher.start();//“A”第二次出现的位置
System.out.println("'A'第二次出现的位置是:"+i);
}
}