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

要求:任意的源字符串。
匹配的单词以参数方式传入。
以整数形式返回结果。

比如说源字符串是str="bookabcbookadbook";
str=" "+str+" ";
单词是s="book";
直接输出str.split(s).length-1就是单词的个数。
原理就是字符串前后都加空格以后,再用你要查找的单词把字符串分成数组,数组元素的个数减1,就是单词的个数了。当然,首先要用contains() 方法判断一下字符串是否已经包含要找的单词。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-22
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;
}
第2个回答  2012-12-22
最简单的办法就是用replace替换那个单词,比如替换成*,然后split("*")得到一个数组,数组长度减去一就是单词个数。
第3个回答  2012-12-22
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;
}
第4个回答  2012-12-21
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();
}

}

追答

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

外面的类也需要?

追问

这个这个,初学者啊,很多东西都不是很懂的

追答

额外提一下,用split比这个还要简单一些,不过replaceAll和split的参数都是正则表达式,如果你用那个需要把s处理一下,变成Pattern.quote(s),repalce的参数只是普通的字符串。

再者都没判断空值之类的东西,需要的话自己加吧

追问

说实话吧,嗯,你那个代码没有看懂,额,我才学java2天!

追答

无语了……

把要统计的字符串从源字符串中删除,然后算出长度差值,除以统计字符串长度,最终就是个数。
split那个是分割字符串成数组,简单说来说是"ababa"按"b"分割得到个长度为3个数组,全是"a",减1后就是"b"的个数,问题是如果按空字符串""分割得到长度为6的数组,第一个为空串,其余是那5个字母,所以需要先判断一下

追问

public static void test01(){
System.out.println("输入字符串:");
Scanner sc=new Scanner(System.in);
String s=sc.next();
String str=(s);
int a = str.length()-str.replaceAll("f", "").length();
System.out.println("f"+"出现的次数是:"+a);

}
我是这么想的嘛,自己输入字符串,和需要匹配的单词,然后系统给出个数,然后我就不知道怎么写了,英雄,救命啊!

追答

public class Test {
public static void main(String[] args) {
String src = "abcabcabc";
System.out.println("输入字符串:");
Scanner sc=new Scanner(System.in);
String s=sc.next();
int count = test(src, s);
System.out.println(src + "中" + s + "出现的次数是:" + count);
}
public static int test(String src, String s) {
return (src.length() - src.replace(s, "").length()) / s.length();
}
}

用java写一个统计字符串中指定单词的个数
比如说源字符串是str="bookabcbookadbook";str=" "+str+" ";单词是s="book";直接输出str.split(s).length-1就是单词的个数。原理就是字符串前后都加空格以后,再用你要查找的单词把字符串分成数组,数组元素的个数减1,就是单词的个数了。当然,首先要用contains() 方法判断一下字符串是否...

java中如何统计某个字母在一个字符串中出现了多少次啊
1、根据length获取字符串长度 String s = "abcdedfae";\/\/定义一个字符串int len = s.length();\/\/获取原来的字符串长度2、通过replaceAll方式,把字符串中该字母替换成空 String s1 = s.replaceAll(要统计的字母,"");3、获取替换后的字符串长度 int len2 = s1.length();4、原来的字符串长度...

编写java程序:输入一个字符串,判断有几个英文字母,有几个数字,有几个...
public class Main { public static void main(String args[]){ String str1="abfdTE1879!!";\/\/可以从控制台输入 String str2=str1.replaceAll("[a-z|A-Z]","");System.out.println("英文字符的个数为"+(str1.length()-str2.length()));str1=str2;str2=str1.replaceAll("[0-9]"...

3.编写一个程序,统计出某个字符串中大写英文字母个数、小写英文在字母个...
import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int upperCase = 0;int lowCase = 0;int num = 0;System.out.println("请输入任意字符串");String s = sc.next();char[] letters = s.toCharArray();for(in...

Java编程统计用户从键盘输入的字符串中所包含的字母,数字和其他字符的个...
import java.util.Scanner;\/** * 统计字符串中数字,字母,空格,其他字符的个数 * @author Administrator * *\/public class Data01 {public static void main(String[] args) {int englishCount = 0;\/\/ 英文字母个数int spaceCount = 0;\/\/ 空格个数int numCount = 0;\/\/ 数字个数int other...

用java编写一个函数,统计一个字符串中每个字母出现的次数,谢谢啦
import java.util.Set;import java.util.TreeMap;\/ 需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)分析:A:定义一个字符串(可以改进为键盘录入)B:定义一个TreeMap集合 键:Character 值:Integer C:把字符串转换为字符数组 D:遍历字符数组,得到...

用Java编写程序对字符串 按字符的ASCII值排序,并统计各种字符的个数...
\/\/ 打印统计结果 System.err.println("包含字母:" + countOfLeter + "个");System.err.println("包含数字:" + countOfNumber + "个");System.err.println("包含其他符号:" + countOfSymbol + "个");} \/ param args \/ public static void main(String[] args) { \/\/ TODO Auto-generated ...

用java编程统计用户从键盘输入的字符串中所包含的字母,数字和其他字 ...
import java.util.Scanner;public class Test { public static void main(String [] args){ Scanner input = new Scanner(System.in); System.out.print("输入字符串:"); String strs = input.next(); int number = 0; int chara = 0; int other = 0; char [] chs = st...

利用java语言编程 : 输入一行字符,分别统计出其中英文字母、空格、数...
++space;}else if(value>=48 && value<=57){ ++num;}else if((value>=65 && value<=90) || (value>=97 && value<=122) ){ ++letter;}else{ ++other;} } System.out.println("数字个数:"+num+"\\n字母个数:"+letter+"\\n空格个数:"+space+"\\n其他字符个数:"+other);...

java中 如何统计一段字符串中相同字符的个数
通过循环遍历字符串,然后一个个的比较,记下相同字符的个数就行了。代码如下:import java.util.Scanner;import java.util.TreeMap;\/** * 从键盘输入16位长整数,编程统计每个数字出现的个数 * @author young * *\/public class CharMapDemo {\/\/ 统计数字或者字符出现的次数public static TreeMap<...

相似回答