java问题,接收键盘输入一个字符串,显示字符串中各字符出现的次数,显示结果如下
java问题,接收键盘输入一个字符串,显示字符串中各字符出现的次数,显示结果如下“abcsacsbbe”“a2b3c2s2e1”...
java问题,接收键盘输入一个字符串,显示字符串中各字符出现的次数,显示结果如下“abcsacsbbe”“a2b3c2s2e1”
展开
5个回答
2018-08-22 · 知道合伙人互联网行家
关注
展开全部
#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();
}
展开全部
实现比较简单,把字符串拆成字符数组再进行计数即可。
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());
}
}
}
追问
能写个字符串然后输出吗,我照这个写输出就是:请输出字符串
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
追问
能加上字符串举个例子吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
觉得不错推荐给大家,我是通过一个叫“我要编程”的学习平台学的,课程由浅入深,配套在线考试,和项目实战
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);
}
觉得不错推荐给大家,我是通过一个叫“我要编程”的学习平台学的,课程由浅入深,配套在线考试,和项目实战
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思维:用N个变量记录,按键输入的次数,然后把计数大于0的提取出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询