java问题,接收键盘输入一个字符串,显示字符串中各字符出现的次数,显示结果如下

java问题,接收键盘输入一个字符串,显示字符串中各字符出现的次数,显示结果如下“abcsacsbbe”“a2b3c2s2e1”

#include<stdio.h>
main()
{
char s[254];
char name[4][10]={"UPPER","LOWER","DIGIT","OTHER"};
int i,a[4];
printf("INPUT A STRING:");
gets(s);
for(i=0;i<4;i++)
a[i]=0;
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='A'&&s[i]<='Z')a[0]++;
else if(s[i]>='a'&&s[i]<='z')a[1]++;
else if(s[i]>='0'&&s[i]<='9')a[2]++;
else a[3]++;
}
for(i=0;i<4;i++)printf("%s:%d\n",name[i],a[i]);
getch();
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-22

实现比较简单,把字符串拆成字符数组再进行计数即可。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.concurrent.atomic.AtomicInteger;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入字符串:");
        String str = scanner.nextLine();
        char[] chars = str.toCharArray();
        Map<Character, AtomicInteger> map = new HashMap<>();
        for (char c : chars) {
            if (map.containsKey(c)) {
                map.get(c).incrementAndGet();
            } else {
                map.put(c, new AtomicInteger(1));
            }
        }

        System.out.println("字符计数结果:");
        for (Map.Entry<Character, AtomicInteger> entry : map.entrySet()) {
            System.out.print("" + entry.getKey() + entry.getValue());
        }
    }
}

追问

能写个字符串然后输出吗,我照这个写输出就是:请输出字符串

本回答被提问者采纳
第2个回答  2018-08-22
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        String str = sc.nextLine();
        int[] nums = new int[26];
        for(int i = 0; i < str.length(); ++i){
            int index = str.charAt(i)-'a';
            nums[index]++;
        }
        for(int i = 0; i < nums.length; ++i){
            if( nums[i] != 0 ){
                System.out.println( (char)('a'+i) + ": " + nums[i]);
            }
        }
        sc.close();
    }

追问

能加上字符串举个例子吗

第3个回答  2018-08-22
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
System.out.println("请你输入字符");
String str = scan.nextLine();
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入你要查找的子字符串");
String str1 = scan1.nextLine();
int count = 0;
int start = 0;
while (str.indexOf(str1, start) >= 0 && start < str.length()) {
count++;
start = str.indexOf(str1, start) + str1.length();
}
System.out.println(str1 + "在" + str + "出现的次数为" + count);
}

觉得不错推荐给大家,我是通过一个叫“我要编程”的学习平台学的,课程由浅入深,配套在线考试,和项目实战
第4个回答  2018-08-22
思维:用N个变量记录,按键输入的次数,然后把计数大于0的提取出来
相似回答