首页 > 其他 > 详细

5.24 在大串中查找小串出现的次数案例代码实现

时间:2015-10-26 17:08:13      阅读:291      评论:0      收藏:0      [点我收藏+]
/*
 * 统计大串中小串出现的次数
 * 举例:
 * 		在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
 * 结果:
 * 		java出现了5次
 * 
 * 分析:
 * 		前提:是已经知道了大串和小串。
 * 
 * 		A:定义一个统计变量,初始化值是0
 * 		B:先在大串中查找一次小串第一次出现的位置
 * 			a:索引是-1,说明不存在了,就返回统计变量
 * 			b:索引不是-1,说明存在,统计变量++
 * 		C:把刚才的索引+小串的长度作为开始位置截取上一次的大串,返回一个新的字符串,并把该字符串的值重新赋值给大串
 * 		D:回到B
 */
public class StringTest {
	public static void main(String[] args) {
		// 定义大串
		String maxString = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
		// 定义小串
		String minString = "java";

		// 写功能实现
		int count = getCount(maxString, minString);
		System.out.println("Java在大串中出现了:" + count + "次");
	}

	/*
	 * 两个明确: 返回值类型:int 参数列表:两个字符串
	 */
	public static int getCount(String maxString, String minString) {
		// 定义一个统计变量,初始化值是0
		int count = 0;

		// 先在大串中查找一次小串第一次出现的位置
		int index = maxString.indexOf(minString);

		// 索引不是-1,说明存在,统计变量++
		while (index != -1) {
			count++;
			// 把刚才的索引+小串的长度作为开始位置截取上一次的大串,返回一个新的字符串,并把该字符串的值重新赋值给大串
			int startIndex = index + minString.length();
			maxString = maxString.substring(startIndex);
			// 继续查
			index = maxString.indexOf(minString);
		}

		return count;
	}
}

技术分享

改进版:

/*
	 * 两个明确: 返回值类型:int 参数列表:两个字符串
	 */
	public static int getCount(String maxString, String minString) {
		// 定义一个统计变量,初始化值是0
		int count = 0;
		
		int index;
		//先查,赋值,判断
		while((index=maxString.indexOf(minString))!=-1){
			count++;
			maxString = maxString.substring(index + minString.length());
		}

		return count;
	}


5.24 在大串中查找小串出现的次数案例代码实现

原文:http://my.oschina.net/u/2001589/blog/522155

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!