java_字符串中子字符串出现的次数

来源:互联网 发布:电脑的端口 编辑:程序博客网 时间:2024/05/20 22:02

分别在控制台输入字符串和子字符串,并计算字符串中子字符串出现的次数。


  

/** *  */package 作业0919;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class StringCount {public static void main(String[] args) {System.out.println("请输入要计算的父串和子串:");Scanner scanner = new Scanner(System.in);String father = scanner.next();String son = scanner.next();int count = 0;// 方法一:while (son.length() <= father.length()) {if (father.indexOf(son) != -1) {father = father.substring(father.indexOf(son) + son.length(), father.length());count++;} else {break;}}System.out.println("方法一中:子串在父串中出现了" + count + "次");// 方法二:extracted(father, son, count);// 方法三:count = extracted1(father, son, count);}private static void extracted(String father, String son, int count) {// 方法一:int fromIndex = father.indexOf(son);while (fromIndex < father.length()) {if (father.indexOf(son, fromIndex) != -1) {count++;fromIndex = father.indexOf(son, fromIndex) + son.length();} else {break;}}System.out.println("方法二中:子串在父串中出现了" + count + "次");}private static int extracted1(String father, String son, int count) {Pattern p = Pattern.compile(son, Pattern.CASE_INSENSITIVE);Matcher m = p.matcher(father);while (m.find()) {count++;}System.out.println("方法三中:子串在父串中出现了" + count + "次");return count;}}

原创粉丝点击