Java 统计字符串的长度,忽略字母的大小写

You will write an Average Word Length program that uses a Boolean parameter called caseSensitive to determine whether the Mapper class should treat upper and lower case letters as different (case-sensitive) or whether all letters should be converted to lower case (case-insensitive).
Write down the Mapper output, Reducer input, and Reducer output using the case- insensitive version of your program for the test input provided above.

3个回答

 import java.util.HashMap;
import java.util.Set;
class Untitled {
    public static double foo(String s, Boolean caseSensitive)
    {
        HashMap map = new HashMap();
        String[] words = s.split("[\\,\\(\\)\\.\\s\\r\\n\\-]");
        for (String item : words)
        {
            if (item.trim().equals("")) continue;
            if (!caseSensitive) item = item.toLowerCase();
            if (!map.containsKey(item)) map.put(item, item.length());
        }
        double r = 0.0;
        Set<String> wl = map.keySet();
        for (String w : wl) r += (double)w.length();
        r /= (double)wl.size();
        return r;
    }

    public static void main(String[] args) {
        String s = "You will write an Average Word Length program that uses a Boolean parameter called caseSensitive to determine whether the Mapper class should treat upper and lower case letters as different (case-sensitive) or whether all letters should be converted to lower case (case-insensitive).\r\nWrite down the Mapper output, Reducer input, and Reducer output using the case- insensitive version of your program for the test input provided above.";     
        System.out.println(foo(s, true));
        System.out.println(foo(s, false));
    }
}

根据你的题目,你求的是单词的平均长度,首先需要分离出句子中有多少单词,并且装入map,然后还需要判断大小写。你确认你理解了题目么?

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复JonathanYan: 问得好,如果不是相同的单词只统计一次,那么为什么要强调区分大小写呢。
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复HinanaiTenshi: 我不都实现了么
一年多之前 回复
HinanaiTenshi
HinanaiTenshi 回复JonathanYan: 大兄弟你的理解是不是有误差,这题目让你uses a Boolean parameter called caseSensitive,这参数显然是一个开关啊,控制是否需要忽略大小写的。也就是说严格区分大小写和忽略大小两种功能都要实现。
一年多之前 回复
JonathanYan
JonathanYan 回复caozhy: 题目要求用非大小写敏感来测试输入,你确认你理解题目了吗
一年多之前 回复
JonathanYan
JonathanYan 回复caozhy: 而且你这个map用的没意义啊,value存的是str.length,后面还没用到,你真的会java吗
一年多之前 回复
JonathanYan
JonathanYan 回复qq_35516286: 题里没说相同的单词只统计一次吧
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_35516286: 估计你也不懂英文,算了,我按照原始题意给你写了一个。
一年多之前 回复
qq_35516286
qq_35516286 没理解错啊,根据单词首字母进行分类,判断每个字母开头的单词长度,然后统计平均长度。我只是不知道怎么使用caseSensitive进行统计首字母统计罢了。
一年多之前 回复

运行结果:
5.326530612244898
5.333333333333333

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

2
编写函数del(char str[])将字符串str中的小写字母删除
2
java字符串分割,为什么会分割出来一个字符串长度为0的串
4
javascript怎么判断字符串的长度?
2
java替换字符串中包含的5位长度的数字,其他长度不用处理,请问有什么好的办法?
7
java 在带有数字、字母、字符组成的字符串分割出从数字开始到数字结束的固定字符串
1
查找其中的最大字母,在该字母后面插入字符串“(max)”,C语言编写代码的做法
1
(C语言)输入一个有20个以上字符的字符串,分别统计字符串中字符a和s(只限于小写)的个数,并输出结果。
4
java字符串缓冲器问题
1
用C语言如何解决:对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串
0
输入一行字符(长度不确定),先把输入的字符串写到文本文件,然后从该文件中读出来?
0
字符串运用的查找最大元素,怎么采用C语言的程序代码编写的过程的方式去实现
1
输入一个字符串,可以删除字符串s中的任意字符,剩下的字符串形成对称字符串,且该字符串为最长对称字符串
0
要求输出s和t交叉组成的各种字符串组合中最长回文串的长度,这个问题用C语言写出代码怎么实现
0
统计每个元音字母在字符串中出现的次数,如何采用C语言的程序的编写的技术怎么才能有效地实现的呢
7
如何在 Java 中分割字符串?
0
回文串,对于一个字符串的判断最长的算法,用C语言
0
查找其中的最大字母,在该字母后面插入字符
0
统计一个给定字符串中指定的字符出现的次数
2
java基础 字符串compareTo()大小比较
3
java 拼接字符串在前端怎么实现换行