高分悬赏提问,Java语言程序来编写,怎么统计输入的字符串中每个字符出现的频率百分比?
show me your code please
这是我的代码:
package apa;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Test1
{
public static void main(String[] args) throws IOException
{
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String str=bufr.readLine();
HashMap<Character,Integer> map = new HashMap<Character,Integer>();
int len = str.length();
for(int i = 0;i<len; i++)
{
Character c = str.charAt(i);
if(map.containsKey(c))
{
map.put(c, 1+map.get(c));
}
else
{
map.put(c, 1);
}
}
for(Map.Entry<Character,Integer> entry:map.entrySet())
{
char c = entry.getKey();
int i = entry.getValue();
System.out.println(c+": "+(double)i/len);
}
}
}
你这问题好像 我java老师布置的课后作业 哈哈哈
package com.tedu.test;
import java.util.HashMap;
import java.util.Scanner;
public class Dome {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请录入一个字符串:");
String str = sc.nextLine();
//创建一个Map集合:键是字符,值是个数
HashMap map=new HashMap<>();
//遍历字符串
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
//判断map集合中是否包含指定的键(字符)
if(!map.containsKey(ch)){
map.put(ch, 1); //如果不包含指定的字符,就是第一次添加,值是1
}else{
Integer value = map.get(ch);
map.put(ch, value+1);
}
}
System.out.println(map);
}
}
这是我的作业
主要是思路对就可以:
(1)首先得到字符串长度以及字符串中包含的字符类别;
(2)遍历字符串,同个每个类别的字符出现的次数。
1,2楼的代码,可以解决