您的位置:首页 > 编程语言 > Java开发

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

2017-09-20 08:52 197 查看
分别在控制台输入字符串和子字符串,并计算字符串中子字符串出现的次数。

  /**
*
*/
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: