黑马程序员技术交流社区
标题:
请多多指教,自己写的查找指定子串在字符串中出现次数
[打印本页]
作者:
何竹冬
时间:
2013-1-4 00:44
标题:
请多多指教,自己写的查找指定子串在字符串中出现次数
本帖最后由 何竹冬 于 2013-1-4 01:04 编辑
请多多指教,自己写的查找指定子串在字符串中出现次数
import java.util.*;
public class GetSubStrCount
{
//获得指定子串key在字符串str中出现的次数
public static int getCount(String str,String key)
{
int count=0;//计数器,计算key出现的次数
int shift=key.length(); //指针偏移位
int pos=0;//指针位置,初始为0
//只要指针位置到字符串结尾长度不小于key的长度shift就继续循环
while(pos<=str.length()-shift)
{
String temp=str.substring(pos,pos+shift);
if(key.equals(temp))
{
count++;
pos+=shift;
continue;
}
pos++;
}
if(count==0)
System.out.println("没找到!");
return count;
}
public static void main(String[] args)
{
System.out.println("请输入一个字符串和要查找的子串");
Scanner scan=new Scanner(System.in);
String str=scan.next();
String key=scan.next();
int count=getCount(str,key);
System.out.println("子串出现的次数为:"+count);
}
}
复制代码
作者:
刘文超
时间:
2013-1-4 09:17
本帖最后由 刘文超 于 2013-1-4 09:42 编辑
lz你好,看了你用写的程序,我学习了。
你用的是String.subString()函数。
我用的是String.indexOf()也写了一个,还望大家指点。。。
package org.qyx.online;
import java.util.*;
public class CountOfSubStr {
public static int getCount(String str, String key) {
int count = 0;// 计数器,计算key出现的次数
int i=0;//下标
while((i=str.indexOf(key,i ))!=-1){
count++;
i++;//找到之后下标要向后移动以为哦、、不然还从之前位置查找
}
return count;
}
public static void main(String[] args) {
System.out.println("请输入一个字符串和要查找的子串");
Scanner scan = new Scanner(System.in);
String str = scan.next();
String key = scan.next();
int count = getCount(str, key);
System.out.println("子串出现的次数为:" + count);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2