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.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获取字符串中字母出现的个数的主要内容,如果未能解决你的问题,请参考以下文章