统计脏话的程序怎么写?

问题描述

这个是我写的,感觉写不下去了。。。求救~!!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;}

解决方案十一:
先建立字典庫再對比?

时间: 2024-09-29 02:09:09

统计脏话的程序怎么写?的相关文章

我想写个关于统计脏话次数的java程序

问题描述 大概意思是这样的.我用Scanner输入一段话,然后如果出现了我指定的脏话词语,就罚钱.比如我设定的脏话是句子出现fuck罚5刀,asshole罚3刀,sex罚1刀,jerk罚0.5刀.然后我在scanner里输入:fuckyou,youareanasshole,ican'tbelieveihavesexwithjerklikeyou.结果就打印请付9.5刀.问题来了,怎么写..-- 解决方案 解决方案二:Map<String,Double>keyWordMap=newHashMap

c语言-求 (高级语言关键字统计处理)程序

问题描述 求 (高级语言关键字统计处理)程序 我是在校大学生,今年大一 自己对编程特别感兴趣,所以就找老师学,老师每周给我一个题目叫我自己做 ,可这次这个题目我实在做不出来,还请大神帮忙看看 题目描述 :用C/C++设计一个程序,实现对某个源代码中关键字的统计功能. 功能要求及说明: (1)建立保留字(或关键字)文件key.txt: (2)从源代码文件(例如,C或C++语言程序)中,读取字符或字符串,与保留字(或关键字)文件中保留字(或关键字)匹配,若是则统计,计入保留字统计次数,否则计入非保留

程序设计-这个C语言程序怎么写,求大神帮忙

问题描述 这个C语言程序怎么写,求大神帮忙 题目二十四:职工工资管理系统 功能设计要求(1-2人) 1. 输入记录:将每一个职工的姓名.ID号以及基本工资.职务工资.岗位津贴.医疗保险.公积金的数据作为一个记录.?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录. 2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资. 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示. 4.查找记录:可以对数据文件的任意记录的数据

IFFT的c语言程序怎么写啊

问题描述 IFFT的c语言程序怎么写啊 IFFT的C源程序怎么写啊IFFT的C源程序怎么写啊IFFT的C源程序怎么写啊IFFT的C源程序怎么写啊 解决方案 这个你可以参考一下上面的链接就是逆傅里叶变换 解决方案二: FFT及IFFT的C语言实现 解决方案三: 用于ARM上的FFT与IFFT源代码(C语言,不依赖特定平台)

vs2012-VS2015 C++编写手机程序 只能写安卓程序吗?

问题描述 VS2015 C++编写手机程序 只能写安卓程序吗? VS2015 C++编写手机程序 只能写安卓程序吗?是调用SDK还是NDK写安卓程序,不能写IOS程序吗?Linux程序能写吗? 解决方案 不是的,首先,Visual Studio本身就支持微软自家的Windows Phone开发,同时支持通过Xamarin编写Android和iOS应用.还可以通过诸如QT这样的库编写Linux下也可运行的桌面应用程序. 解决方案二: Visual Studio 是微软的开发工具,当然最基础的是支持

结对编程-短信验证码的程序怎么写 需要什么工具

问题描述 短信验证码的程序怎么写 需要什么工具 本地的普通模板已经做出来了就是不知道怎么把接口对接上 或需要什么工具 解决方案 需要申请一个发短信的接口,并且支付相关费用. 解决方案二: 需要短信猫,你自己百度一下吧 解决方案三: 用飞q之类的短信验证码平台吧,不用自己买猫池.

c语言-用C语言实现网络聊天的程序怎么写?

问题描述 用C语言实现网络聊天的程序怎么写? 采用tcp实现聊天服务器和客户端,客户端从命令行输入聊信息,服务器收到聊天信息发送给所有连接到此服务器的客户端. 要求: 此服务器端口号为:8888, 聊天信息格式为:消息头(4字节,标示后续消息体聊天信息的长度) + 消息体(聊天信息) 支持100个客户端的连接和发送接收操作. 客户端输入exit就断开连接并退出程序 服务器要能响应客户端的主动断开请求. 解决方案 源代码http://download.csdn.net/detail/liutian

c++-请问大神这个程序怎么写,主要是不知道 文件名怎么传

问题描述 请问大神这个程序怎么写,主要是不知道 文件名怎么传 解决方案 #include<iostream>#include<vector>using namespace std;int main(){ vector<double> vec_num; vec_num.push_back(1.1); vec_num.push_back(1.5); vec_num.push_back(1.2); vector<double>::reverse_iterator

列转行-SQL语句统计问题,不想写union all

问题描述 SQL语句统计问题,不想写union all 建表测试语句: CREATE TABLE stbuu_cause109_20160331 ( intenbid BIGINT, intrsrp00 BIGINT, intrsrp01 BIGINT, intrsrp02 BIGINT, intrsrp03 BIGINT, intrsrp04 BIGINT, intrsrp05 BIGINT, intrsrp06 BIGINT ); 插入测试数据: INSERT INTO stbuu_caus