如题,例: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
提交
取消
