java什么求一个子字符串在另一字符串中出现的次数用那个函数?

java什么求一个子字符串在另一字符串中出现的次数用那个函数?... java什么求一个子字符串在另一字符串中出现的次数用那个函数? 展开
 我来答
GYC_OYYL
2010-03-30 · TA获得超过248个赞
知道答主
回答量:52
采纳率:100%
帮助的人:69.3万
展开全部
基本思想是:用子字符串来作为正则表达式字符串来对给定字符串进行划分,划分后的长度-1即为子字符串的个数。
class Test{
public static void main(String[] args){
String str = "HI,World,I am a programmer, Hello,World,";
String sub = "World";
String[] sps = str.split(sub);
System.out.println("str中共有"+ (sps.length-1) + "个World");
}
}
476662530
2010-03-30 · 超过12用户采纳过TA的回答
知道答主
回答量:55
采纳率:100%
帮助的人:25.8万
展开全部
public static void main(String[] args) {
String a = "abcabc23423abc342334abc3453423423";
String b = "abc";
System.out.println(getSubNum(a, b));
}

public static int getSubNum(String a, String b) {
int num = 0;
String str = a;
int index = a.indexOf(b);
while (index != -1) {
num++;
str = str.substring(index + b.length() - 1);
index = str.indexOf(b);
}
return num;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沫沫容
2015-06-19 · 知道合伙人教育行家
沫沫容
知道合伙人教育行家
采纳数:7299 获赞数:44206
2010年毕业,英语六级水平,擅长写作、翻译、同义句转换、完形填空、阅读理解等一系列题型及相关考试。

向TA提问 私信TA
展开全部
思路就是从被匹配字符串a中一个一个往后推,截取b字符串长度的字符串:
public class CountHit {
public static void main(String[] args) {
String a = "123456abcde6a6abc6ab";
String b = "6abc";
System.out.println(new CountHit().hit(a, b));
}

/**
*
* @param a
* 被匹配的长字符串
* @param b
* 匹配的短字符串
* @return 匹配次数
*/
public int hit(String a, String b) {
if (a.length() < b.length()) {
return 0;
}
char[] a_t = a.toCharArray();
int count = 0;

for (int i = 0; i < a.length() - b.length(); i++) {
StringBuffer buffer = new StringBuffer();
for (int j = 0; j < b.length(); j++) {
buffer.append(a_t[i + j]);
}
if(buffer.toString().equals(b)){
count ++;
}
}

return count;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
akfucc
2010-03-30 · TA获得超过5454个赞
知道大有可为答主
回答量:1771
采纳率:0%
帮助的人:2206万
展开全部
现成的方法可能没有
楼上的都能得出结果,但是要需要生成比较多的字符串对象

public static void main(String[] args) throws Exception {
String str = "12345678912345678912313123";
String sub = "123";
System.out.println(find(str, sub));
}

public static int find(String str, String sub) {
int count = 0;
int index = 0;
int temp = 0;
while ((temp = str.indexOf(sub, index)) != -1) {
count++;
index = temp + sub.length();
}
return count;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tsx718
2010-03-30 · TA获得超过1613个赞
知道小有建树答主
回答量:668
采纳率:0%
帮助的人:605万
展开全部
public class Demo_1 {

String str = "asd34ad5556dadb5";

public static void main(String[] args){
Demo_1 d = new Demo_1();
System.out.println("ad出现的次数为: " + d.num(d.str));

}

public int num(String str){
int a = str.split("ad").length - 1;
return a;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式