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

java问题,接收键盘输入一个字符串,显示字符串中各字符出现的次数,显示结果如下“abcsacsbbe”“a2b3c2s2e1”... java问题,接收键盘输入一个字符串,显示字符串中各字符出现的次数,显示结果如下“abcsacsbbe”“a2b3c2s2e1” 展开
 我来答
DoramiHe
2018-08-22 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部

#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();
}

巨蟹神算子
2018-08-22 · TA获得超过437个赞
知道小有建树答主
回答量:292
采纳率:90%
帮助的人:115万
展开全部

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

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());
        }
    }
}
追问
能写个字符串然后输出吗,我照这个写输出就是:请输出字符串
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丿艾瑞灬莉娅
2018-08-22 · TA获得超过916个赞
知道小有建树答主
回答量:926
采纳率:78%
帮助的人:426万
展开全部
    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();
    }
追问
能加上字符串举个例子吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2208IwT
2018-08-22
知道答主
回答量:2
采纳率:0%
帮助的人:1628
展开全部
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);
}

觉得不错推荐给大家,我是通过一个叫“我要编程”的学习平台学的,课程由浅入深,配套在线考试,和项目实战
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百搭屋平台
2018-08-22 · TA获得超过289个赞
知道小有建树答主
回答量:325
采纳率:55%
帮助的人:30.1万
展开全部
思维:用N个变量记录,按键输入的次数,然后把计数大于0的提取出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式