问题描述
这个是我写的,感觉写不下去了。。。求救~!!publicclassJIadiChangA4Q3{publicstaticintcountWarOccurrences(Stringsentense,Stringword){intnum=0;for(intindex=0;index<sentense.length();index=sentense.indexOf(word,0)+1){if(sentense.indexOf(word,0)!=-1){num++;}}returnnum;}publicstaticdoublegetSwearDollarAmount(Stringsentense,Stringbadword,doublebadcost){intcount=countWarOccurrences(sentense,badword);if()badcost=badcost*count;returnbadcost;}}
解决方案
解决方案二:
参考你上一个帖子里面别人回复的。
解决方案三:
把脏话的词语或词组放入一个字典集合中可以使map,一句话里面去找只要存在于map里面的就可以计算了
解决方案四:
一个词一个词判断
解决方案五:
引用2楼suciver的回复:
把脏话的词语或词组放入一个字典集合中可以使map,一句话里面去找只要存在于map里面的就可以计算了
我不会用map。。没学过
解决方案六:
引用2楼suciver的回复:
把脏话的词语或词组放入一个字典集合中可以使map,一句话里面去找只要存在于map里面的就可以计算了
看过了,看不懂
解决方案七:
能具体说一下吗
解决方案八:
直接上代码了,有注释,自己看吧,不懂回复我,希望给分importjava.util.HashMap;importjava.util.Map;importjava.util.Scanner;publicclasstalkTest{//脏话罚款集合publicstaticMap<String,Double>wordMaps=newHashMap<String,Double>(){{put("slut",0.5);put("bleed",0.75);put("crud",0.25);put("fuck",1.0);}};/***开始说话**/publicstaticvoidstartTalk(){//输入内容,并获取输入的一行的值StringinputContent=newScanner(System.in).nextLine();Doublemoney=0.0;//循环4中类型的脏话,然后算出对应的钱for(Stringkey:wordMaps.keySet()){money+=count(inputContent,key)*wordMaps.get(key);}System.out.println("一共要付:"+money+"元");}/***sub在text中出现了多少次,这个方法比较多样我得逻辑:通过indexOf找sub这个字符串在text中从第0个字符开始第一次出现的位置;*若有该字符串,则从第一次出现sub的位置在开始第一次出现的位置;依此类推直到sub找不到为止停止循环**@paramtext*@paramsub*@return*/publicstaticintcount(Stringtext,Stringsub){intcount=0,start=0;while((start=text.indexOf(sub,start))>=0){start+=sub.length();count++;}returncount;}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubstartTalk();}}
解决方案九:
接上一楼,输入:Cannofucktslutoverrifuckdecrud'dealloc'whichbleedhasbleedbeenmarkedbleedunavailablefuck结果:一共要付:6.0元楼主自己试一下吧。
解决方案十:
如果只判断单个词的话,修改count方法,例如:fuckyoufucking,这一句按照上面代码是2个fuck,想要只认为第一个fuck才满足第二个不算的话,代码如下:publicstaticintcount(Stringtext,Stringsub){intcount=0,start=0,last=0;System.out.println(sub);while((start=text.indexOf(sub,start))>=0){last=start+sub.length();if((start==0||''==text.charAt(start-1))&&(last==text.length()||''==text.charAt(last))){count++;}start+=sub.length();}System.out.println("===count==="+count);returncount;}
解决方案十一:
先建立字典庫再對比?