首页 > 试题广场 >

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

[编程题]统计一句话中重复单词的个数
  • 热度指数: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
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();
        //去除字符串中间的空格
        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)
 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)
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>();
        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)
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 []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)