50,527
社区成员
发帖
与我相关
我的任务
分享
public class JIadiChangA4Q3 {
public static int countWarOccurrences(String sentense, String word){
int num=0;
for(int index=0;index<sentense.length();index=sentense.indexOf(word,0)+1){
if (sentense.indexOf(word,0)!=-1){
num++;
}
}
return num;
}
public static double getSwearDollarAmount(String sentense, String badword,double badcost){
int count=countWarOccurrences(sentense,badword);
if ()
badcost=badcost*count;
return badcost;
}
}
public static int count(String text, String sub) {
int count = 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);
return count;
}
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class talkTest {
// 脏话罚款集合
public static Map<String, Double> wordMaps = new HashMap<String, Double>() {
{
put("slut", 0.5);
put("bleed", 0.75);
put("crud", 0.25);
put("fuck", 1.0);
}
};
/**
* 开始说话
*
*/
public static void startTalk() {
// 输入内容,并获取输入的一行的值
String inputContent = new Scanner(System.in).nextLine();
Double money = 0.0;
// 循环4中类型的脏话,然后算出对应的钱
for (String key : wordMaps.keySet()) {
money += count(inputContent, key) * wordMaps.get(key);
}
System.out.println("一共要付:" + money + "元");
}
/**
* sub在text中出现了多少次,这个方法比较多样 我得逻辑: 通过indexOf找sub这个字符串在text中从第0个字符开始第一次出现的位置;
* 若有该字符串,则从第一次出现sub的位置在开始第一次出现的位置;依此类推直到sub找不到为止停止循环
*
* @param text
* @param sub
* @return
*/
public static int count(String text, String sub) {
int count = 0, start = 0;
while ((start = text.indexOf(sub, start)) >= 0) {
start += sub.length();
count++;
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
startTalk();
}
}