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

qq_灰太狼_27
TA贡献7条经验 获得超1个赞
public static int ContainZifu2(String str,String str2){
str = " " + str + " ";
String[] ss = str.split(str2);
return ss.length-1;
}

bluesriver
TA贡献3条经验 获得超0个赞
var a="我好开心:-)我开心:-)我不开心:-("; var arr=a.split(":-)"); alert(arr.length);
拆分成数组,然后得到数组长度

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("不开心"); } } }
添加回答
举报
0/150
提交
取消