用java写一个统计字符串中指定单词的个数 5

要求:任意的源字符串。匹配的单词以参数方式传入。以整数形式返回结果。... 要求:任意的源字符串。
匹配的单词以参数方式传入。
以整数形式返回结果。
展开
 我来答
hdparrot
推荐于2017-10-04 · TA获得超过2404个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1152万
展开全部
比如说源字符串是str="bookabcbookadbook";
str=" "+str+" ";
单词是s="book";
直接输出str.split(s).length-1就是单词的个数。
原理就是字符串前后都加空格以后,再用你要查找的单词把字符串分成数组,数组元素的个数减1,就是单词的个数了。当然,首先要用contains() 方法判断一下字符串是否已经包含要找的单词。
hezhuming123
2012-12-22 · TA获得超过170个赞
知道答主
回答量:89
采纳率:0%
帮助的人:62.4万
展开全部
public static int getCount(String str,String key)
{
int count=0;//计数器记录出现的次数
int shift=key.length(); //角标偏移位
int i=0;//字符串角标位置
while(i<=str.length()-shift)//循环条件当字符串角标位置距离结尾的长度不小于key的长度
{
String temp=str.substring(i,i+shift);

if(key.equals(temp))
{
count++;
i+=shift;
continue;
}
i++;
}
return count;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是北堂风
2012-12-22 · TA获得超过594个赞
知道小有建树答主
回答量:657
采纳率:0%
帮助的人:275万
展开全部
最简单的办法就是用replace替换那个单词,比如替换成*,然后split("*")得到一个数组,数组长度减去一就是单词个数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酸奶cool316
2012-12-22
知道答主
回答量:6
采纳率:0%
帮助的人:3.4万
展开全部
public int count(String S,String s){//S--源字符串,s--匹配的单词
int count=0;
int n=0;
while(n<S.length()-1){
if(S.indexOf(s,n)!=-1){
count++;
n=S.indexOf(s,n)+s.length();
}
else{break;}
}
return count;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nanayask
2012-12-21 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:81.3万
展开全部
public static int test(String src, String s) {
return (src.length() - src.replace(s, "").length()) / s.length();
}

感觉比较偷懒
更多追问追答
追问
亲,敢写完整的吗?

package com.oracle;
public class test01 {
public static void test01(){
String str=("dfghdshfrtdhgffdhfdhhtfnxsadgh");
int a = str.length()-str.replaceAll("f", "").length();
public static void main(String[] args) {

test01();
}

}
追答
这只是一个静态方法,放类里就能用的,还要怎么完整……

外面的类也需要?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式