为了账号安全,请及时绑定邮箱和手机立即绑定

如何在一个字符串里查找另一个字符串出现的次数

如何在一个字符串里查找另一个字符串出现的次数

我真的不是马克 2016-02-12 08:12:33
如题,例:string a = “我好开心:-)我开心:-)我不开心:-(”然后根据“:-)”和“:-(”出现的次数来确定用户是开心还是不开心“:-)”出现的次数多就是开心,反之不开心。我查了一下,看了indexOf();但是并不好使。。。
查看完整描述

5 回答

已采纳
?
_泥人_

TA贡献7条经验 获得超2个赞

package com.imooc;

import java.util.ArrayList;
import java.util.List;

public class Test4 {
	public static void main(String[] args) {
		Test4 t4 = new Test4();
		String str = "我好开心:-)我开心:-)我开心:-(我不开心";
		switch (t4.cxcs(str)) {
		case 1:
			System.out.println("用户开心");
			break;
		case 0:
			System.out.println("用户不开心");
			break;
		case 2:
			System.out.println("开心次数=不开心次数");
			break;
		default:
			System.out.println("错误!");
			break;
		}
	}
	
	/*解决慕课网问题
	 * 查询一个字符串在另一个字符串中出现的次数
	 * 通过我开心和我不开心的次数来判断用户是开心还是不开心
	 * 解决思路:通过开心前是否有“不”来判断是开心还是不开心
	 * 用户开心返回1;用户不开心返回0;
	 */
	public int cxcs(String str) {
		int happy = 0;// 开心出现的次数
		int noHappy =0;// 不开心出现的次数
		if(str!=""&&str!=null){
			List<Integer> kx = new ArrayList<Integer>();// 开出现的位置集合
			for(int i =0;i<str.length();i++){
				if(str.indexOf("开",i)<0) break;
				kx.add(str.indexOf("开",i));
				i = str.indexOf("开",i);
			}
			for (int i = 0; i < kx.size(); i++) {
				String s =str.substring(kx.get(i)-1, kx.get(i)+2);
				switch (s) {
				case "不开心":
					noHappy++;
					break;
				default:
					happy++;
					break;
				}
			}
		}
		if(happy>noHappy){
			return 1;//开心
		}else if(happy<noHappy){
			return 0;//不开心
		}else{
			return 2; //开心的次数=不开心的次数
		}
	}
	
}

用户开心

查看完整回答
1 反对 回复 2016-02-17
?
qq_灰太狼_27

TA贡献7条经验 获得超1个赞

public static int ContainZifu2(String str,String str2){

str = " " + str + " ";

String[] ss =  str.split(str2);

return ss.length-1;

}


查看完整回答
反对 回复 2016-02-19
?
小手拔凉

TA贡献1条经验 获得超0个赞

"我好开心:-)我开心:-)我不开心:-(".match(/:-)/g).length


查看完整回答
反对 回复 2016-02-14
?
bluesriver

TA贡献3条经验 获得超0个赞

var a="我好开心:-)我开心:-)我不开心:-(";
var arr=a.split(":-)");
alert(arr.length);

拆分成数组,然后得到数组长度

查看完整回答
反对 回复 2016-02-13
?
Its_forever

TA贡献361条经验 获得超328个赞

//因为开心和不开心的区别在于“(”和“)”出现的次数,所以可以考虑使用char比较。
public class isHappy {
	public static void main(String[] args) {

		int happy= 0;
		int sad = 0;
		String a="我好开心:-)我开心:-)我不开心:-(";
		for (int i = 0; i < a.length(); i++) {
			if(a.charAt(i)=='('||a.charAt(i)=='('){
				sad++;
			}else if(a.charAt(i)==')'||a.charAt(i)==')'){
				happy++;
			}
		}
		if(happy>=sad){
			System.out.println("开心");
		}else{
			System.out.println("不开心");
		}
	}
}


查看完整回答
反对 回复 2016-02-13
  • 5 回答
  • 1 关注
  • 2575 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号