Java获取字符串中字母出现的个数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java获取字符串中字母出现的个数相关的知识,希望对你有一定的参考价值。

已有字符串str1="sdfg,hellozx,sdfcv-waadfa,fsasdfxcvdf"
键盘输入任意字符串,例如:String str2="HaHahello01",
在原来字符串str1中去掉str2中最大的交集字符串(hello)后, 获取该字符串str1中的每个字母出现的次数。

例如:去掉hello后

以这种方式打印:字母按从大到小排序
输出:

x(出现2次)w(出现1次)v(出现2次)s(出现4次)g(出现1次)f(出现6次)d(出现5次)c(出现2次)
不按从大到小,按字母出现次数排序
输出:
f(出现6次)d(出现5次)s(出现4次)x(出现2次)v(出现2次)c(出现2次)w(出现1次)g(出现1次)

import java.util.HashMap;
import java.util.Set;
import java.util.concurrent.CyclicBarrier;
public class TestStrNumber
private static String str1 = "sdfg,hellozx,sdfcv-waadfa,fsasdfxcvdf";
public static void main(String[] args)
String ss=getUnmatchStr("hello");
getCharNum(ss);

public static void getCharNum(String ss)
String sb="";
for (int i = 0; i < ss.length(); i++)
if (ss.charAt(i)!='-'&&ss.charAt(i)!=',')
sb+=ss.charAt(i);


char[] cs=sb.toCharArray();
int oldNum=0;
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
for (char c : cs)
if (map.containsKey(c))
oldNum=map.get(c);
map.put(c, oldNum+1);
else
map.put(c, 1);


Set<Character> keys = map.keySet();
for(Character c:keys)
System.out.print(c+"(出现"+map.get(c)+"次)");


public static String getUnmatchStr(String s)
String str2="";
int startIndex=0;
int endIndex=0;
if (str1.contains(s))
startIndex = str1.indexOf(s);
endIndex=startIndex+s.length();

str2 = str1.substring(0, startIndex)+str1.substring(endIndex, str1.length());
return str2;

参考技术A public static void main(String[] args)
String s = "abc a bc abc bc abc";
Map<String,Integer> map = new HashMap<String,Integer>();
for(String str : s.split("|"))
if(map.containsKey(str))
map.put(str, map.get(str)+1);
else
map.put(str, 1);


for(Entry<String,Integer> e : map.entrySet())
System.out.println(e.getKey() +": "+e.getValue()+"个");

参考技术B 这个有什么难度呢?

以上是关于Java获取字符串中字母出现的个数的主要内容,如果未能解决你的问题,请参考以下文章

JAVA实验--统计文章中单词的个数并排序

怎么统计输入的一个字符串中每个字母出现的次数?

判断字符串中出现大写字母的个数和小写字母的个数

JAVA中TreeMap集合筛选字母及每一个字符出现的次数

编写算法,统计一个字符串中出现的大写字母小写字母数字和其他字符出现的个数。

闲谈如何统计字符串中出现最多的字母与个数