首页 > 试题广场 >

统计一句话中重复单词的个数

[编程题]统计一句话中重复单词的个数
  • 热度指数:6474 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

统计控制台输入的一句话中不同字⺟字符出现的次数。例如:现有字符串"Hello World!",上述字符串中各个字符的出现的次数为:

H:1
e:1
l:3
o:2
W:1
r:1
d:1
(不考虑数字、空格和特殊字符的个数,按照字符在字符串中出现的顺序显示。相同字母的大小写算两个不同字符



输入描述:
控制台任意输入一段话,可以有空格和特殊符号


输出描述:
输出字符和字符对应的出现字数(字符和出现次数之间用:隔开,输出逻辑已经给出)
示例1

输入

Hello World

输出

H:1
e:1
l:3
o:2
W:1
r:1
d:1
line = line.replaceAll("[^a-zA-Z]", "");
        int t = line.length();
        
        for (int i=0; i<t ; i++){
            if(map.get(line.charAt(i)) == null){
            map.put(line.charAt(i),1);
            }
            else{
            map.put(line.charAt(i),map.get(line.charAt(i))+1);    
            }
        }
发表于 2022-03-01 10:06:00 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();

        //write your code here......
         char []b=line.toCharArray();
        ArrayList arraylist=new ArrayList();
        for(int i=0;i<b.length;i++){
            if(b[i]!=' '){
                arraylist.add(b[i]);
            }
        }
        for(int i=0;i< arraylist.size();i++){
            int k=0;
            char c= (char) arraylist.get(i);
           while(arraylist.contains(c)){
               arraylist.remove(arraylist.indexOf(c));
               k++;
            }
           if(k!=0){
               i--;
           }
           map.put(c,k);
            k=0;
        }
        
        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
        
    }
}
发表于 2022-05-14 12:53:23 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        //去除字符串中间的空格
        String trim = line.replaceAll(" ","");
		Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();
		int length = 0;
		//write your code here......
		while(length < trim.length()){
            //如果存在key,则值+1
			if(map.containsKey(trim.charAt(length))){
				map.put(trim.charAt(length), map.get(trim.charAt(length))+1);
				length++;
			}else{
                map.put(trim.charAt(length),1);
			    length++;
            }
		}
        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

发表于 2023-02-22 16:37:59 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();
        for(int i=0;i<line.length();i++){
            char c=line.charAt(i);
            if(Character.isLetter(c)){
                if(map.containsKey(c)) map.put(c,map.get(c)+1);
                else map.put(c,1);
            }
        }
        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

发表于 2022-08-02 19:28:20 回复(0)
        //write your code here......
        for (int i = 0; i < line.length(); i++) {
            char c = line.charAt(i);
            if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
                if (map.containsKey(c)) {
                    map.put(c, map.get(c) + 1);
                } else {
                    map.put(c, 1);
                }
            }
        }

发表于 2022-05-25 09:50:01 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();

        //write your code here......
        line = line.replace(" ", "");
        char[] charArray = line.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            int cnt = 0;
            for (char c : charArray) {
                if (line.charAt(i) == c) {
                    cnt++;
                }
            }
            map.put(charArray[i], cnt);
        }

        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}
发表于 2023-08-30 17:36:31 回复(0)
刚开始做忽略了空格,符号那些
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();

        //write your code here......
       for(char ch:line.toCharArray()){
        if(Character.isLetter(ch)){
            map.put(ch,map.getOrDefault(ch,0)+1);
        }
       }

        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}


发表于 2023-07-31 15:51:45 回复(0)
 //write your code here......
        line = line.replaceAll("[^a-zA-Z]+", "");//去除数字、空格和特殊字符
        char[] chars = line.toCharArray();

        for (int i = 0; i < chars.length; i++) {
            if (map.containsKey(chars[i])) { // 判断map中是否存在
                map.put(chars[i], map.get(chars[i]) + 1);//存在+1
            } else {
                map.put(chars[i], 1);  // 否则value为1个
            }
        }

发表于 2023-05-11 10:20:55 回复(0)
for (char c : str.toCharArray()) {
            if (c != ' ') {
                // if (!map.containsKey(c)) {
                //     map.put(c, 1);
                // } else {
                //     map.put(c, map.get(c) + 1);
                // }
                map.put(c,map.getOrDefault(c,0) + 1);
            }

        }
发表于 2023-04-17 21:12:35 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();

       
        // for(int i = 0; i < line.length(); i ++ ){
        //     char c = line.charAt(i);
        //     //不考虑特殊字符等,那就是只考虑字母
        //     if('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z'){
        //         if(map.containsKey(c)){
        //             map.put(c, map.get(c) + 1);
        //         }else{
        //             map.put(c, 1);
        //         }
        //     }
        // }

        //增强for
        for(char c : line.toCharArray()){
            //不考虑特殊字符等,那就是只考虑字母
            if('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z'){
                if(map.containsKey(c)){
                    map.put(c, map.get(c) + 1);
                }else{
                    map.put(c, 1);
                }
            }
        }
       

        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}
发表于 2023-04-04 18:06:13 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();
        line = line.replaceAll("[^a-zA-Z]", "");
        for (int i = 0; i < line.length(); i++) {
            char c = line.charAt(i);
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            } else {
                map.put(c, 1);
            }
        }
        //write your code here......

        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

发表于 2023-03-03 17:21:08 回复(0)
 char[] chars = line.toCharArray();
        for(int i = 0; i < chars.length; ++i){
            if(Character.isLetter(chars[i])){
                map.put(chars[i], map.getOrDefault(chars[i], 0) + 1);
            }
        }

发表于 2023-01-08 21:08:04 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String word = in.nextLine();
        char[] arr=word.toCharArray();
        LinkedHashMap<Character,Integermap = new LinkedHashMap<>();
        for(char c : arr){
            if(c!=' '){
                if(map.containsKey(c)){
                    int num =map.get(c).intValue();
                    map.put(c,++num);
                }else{
                    map.put(c,1);
                }
            }
        }
       Set<Map.Entry<Character,Integer>> entry = map.entrySet();
       Iterator<Map.Entry<Character,Integer>> inter = entry.iterator();
       while(inter.hasNext()){
           Map.Entry<Character,Integerent =inter.next();
           System.out.println(ent.getKey()+":"+ent.getValue());
       }
    }
}
发表于 2022-11-29 12:42:14 回复(0)
import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            String regx = "[^a-zA-Z]";
            String[] tempArray = str.replaceAll(regx, "").split("");
            //newStr存储字符及其个数
            StringBuffer newStr = new StringBuffer();
            for(String temp : tempArray){
                if(newStr.toString().contains(temp)){
                    int charIndex = newStr.toString().indexOf(temp);
                    char num = newStr.charAt(charIndex + 1);
                    newStr.setCharAt(charIndex + 1, (char)(num + 1));
                }else{
                    newStr.append(temp);
                    newStr.append(1);
                }
            }
            for (int i = 0; i< newStr.length(); i+=2){
                System.out.println(newStr.charAt(i) + ":" + newStr.charAt(i+1));
            }
        }
    }
}

发表于 2022-11-08 16:58:04 回复(0)
line = line.replaceAll("[^a-zA-Z]","");
        for ( char n:line.toCharArray()) {  
            map.put(n,map.getOrDefault(n,0)+1);           
        }
发表于 2022-08-13 17:44:23 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();
        //write your code here......
        //遍历字符串
        for(int i = 0; i < line.length(); i++) {
            Character ch = line.charAt(i);
            //只处理 A-Za-z 范围的字符
            if (ch >= 'A' && ch <= 'z') {
                //map 不存在:设为 0 再加 1;若存在:获取原值 + 1
                map.put(ch,map.getOrDefault(ch, 0) + 1);
            }
        }        

        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}


发表于 2022-07-20 23:55:53 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();

        //write your code here......
       for(int countNum = 0;countNum < line.length();countNum++){
           char toCountChars = line.charAt(countNum);
           //判断是否为字母
           if(Character.isLetter(toCountChars)){
               if(map.containsKey(toCountChars)){
                   //若哈希表中有该字母,计数+1
                   map.put(toCountChars,map.get(toCountChars) + 1);
               }else{
                   //否则,创建一条新纪录至map表下
                   map.put(toCountChars,1);
               }
           }
       }

        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

发表于 2022-06-21 11:37:57 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();

        //write your code here......
        char[] a = line.toCharArray();
        ArrayList<Character> arraylist = new ArrayList<Character>();
        for(int i = 0;i<a.length;i++){
            if(a[i]!=' '){
                arraylist.add(a[i]);
            }
        }
for(int j = 0;j<arraylist.size();j++){
    if(!map.containsKey(arraylist.get(j))){
        map.put(arraylist.get(j),1);
    }
       else{
           map.put(arraylist.get(j),map.get((arraylist.get(j)))+1);
       }
}
        Set<Map.Entry<Character, Integer>> entrys = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entrys) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}
发表于 2022-05-26 17:49:05 回复(0)
 //write your code here......
       /* for(int i =0;i < line.length();i++){
            char ch = line.charAt(i);//遍历集合中的元素
            if(ch >'a'&&ch <= 'z'||ch >='A'&&ch <= 'Z'){
                if(map.containsKey(ch) == true){  //是要查询的Map集合的键名对象
                    map.put(ch,map.get(ch)+1);//向集合中添加对象
                }else{
                    map.put(ch,1);
                }
            }*/
//但是时间上有误差,望大佬指正
发表于 2022-04-13 21:07:46 回复(0)