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

如题,

例:string a = “我好开心:-)我开心:-)我不开心:-(”

然后根据“:-)”和“:-(”出现的次数来确定用户是开心还是不开心

“:-)”出现的次数多就是开心,反之不开心。


我查了一下,看了indexOf();

但是并不好使。。。

我真的不是马克
浏览 2578回答 5
5回答

_泥人_

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; //开心的次数=不开心的次数 } } }用户开心

qq_灰太狼_27

public static int ContainZifu2(String str,String str2){ str = " " + str + " "; String[] ss =  str.split(str2); return ss.length-1; }

小手拔凉

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

bluesriver

var a="我好开心:-)我开心:-)我不开心:-("; var arr=a.split(":-)"); alert(arr.length);拆分成数组,然后得到数组长度

Its_forever

//因为开心和不开心的区别在于“(”和“)”出现的次数,所以可以考虑使用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("不开心"); } } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java