① java怎么实现统计一个字符串中字符出现的次数
可以用String的indexof(str,fromindex)方法,循环遍历加一个计数器统计次数。
publicclassCountTimes{
publicstaticvoidmain(String[]args){
Stringstr="Intheentireworldthere'";
inttimes=searchstr("my",str);//返回2
System.out.println(times);
}
publicstaticintsearchstr(Stringkey,Stringstr){
intindex=0;//每次的搜索到的下标
intcount=0;//计数器
while((index=str.indexOf(key,index))!=-1){
index=index+key.length();
count++;
}
returncount;
}
}
② java中如何统计某个字母在一个字符串中出现了多少次啊
1、根据length获取字自符串长度
Strings="abcdedfae";//定义一个字符串
intlen=s.length();//获取原来的字符串长度
2、通过replaceAll方式,把字符串中该字母替换成空
Strings1=s.replaceAll(要统计的字母,"");
3、获取替换后的字符串长度
intlen2=s1.length();
4、原来的字符串长度减去替换后的字符串长度就是该字母出现的次数
intlenTimes=len1-len2;//出现的次数
③ 用java,统计txt文件中每个文字或者字母出现的次数,并由大到小排列,并显示每个文字或者字母出现的次数
importjava.io.*;
importjava.util.*;
/**题目:用java,统计文件中每个文字或者字母出现的次数,并由大到小排列,
并显示每个文字或者字母出现的次数
思路:
1.定义字符读取(缓冲)流
2.循环读取文件里的字符,用一个String类型变量接收(newValue)
3.把newValue变成字符数组 char[]ch=newValue.toCharArray();
4.遍历ch将ch中所有的字符存入一个Map集合中(TreeSet),键对应字符,值对应字符出现的次数
5.遍历打印map集合中的键和值,也就是字符出现的次数
**/
publicclassT06{
publicstaticvoidmain(String[]args){
demo(newFile("d:\io.txt"));
}
publicstaticvoiddemo(Filefile){
BufferedReaderbfr=null; //定义字符读取(缓冲)流
try{
bfr=newBufferedReader(newFileReader(file));//给该流赋值
Stringvalue=null; //定义一个临时接收文件中的字符串变量
StringnewValue=""; //接收文件中所有字符串的变量
while((value=bfr.readLine())!=null){ //开始读取文件中的字符
newValue=newValue+value; //存入newValue变量中
}
char[]ch=newValue.toCharArray();//把newValue变成字符数组
TreeMap<Character,Integer>tm=newTreeMap<Character,Integer>(Collections.reverseOrder());/*定义一个TreeMap(因为TreeMap是有序的,存入的键值都有自然比较顺序功能,默认的是从小到大顺序,所有这里传了一个反转的比较器),键对应字符,值对应字符出现的次数**/
for(intx=0;x<ch.length;x++){ //遍历ch将ch中所有的字符存入一个Map集合中(TreeSet),键对应字符,值对应字符出现的次数
charc=ch[x];
if(tm.containsKey(c)){ //如果TreeMap(tm)中有该键,则取出该键中的值,也就是出现的次数
intconut=tm.get(c);
tm.put(c,conut+1); //存入把新值存入tm集合中,如果键相同的话,新键会替换老键,值也随着变化了
}
else{
tm.put(c,1); //如果没有出现该键就说明是第一次出现,然后就存入1次
}
}
//下面的是取出TreeMap(tm)中的键和值
Set<Map.Entry<Character,Integer>>set=tm.entrySet();
Iterator<Map.Entry<Character,Integer>>iter=set.iterator();
while(iter.hasNext()){
Map.Entry<Character,Integer>map=iter.next();
chark=map.getKey();
intv=map.getValue();
System.out.print(k+"("+v+")");
}
}
catch(IOExceptione){
System.out.println("文件读取错误");
}
finally{
try{
if(bfr!=null)
bfr.close();
}
catch(IOExceptione){
System.out.println("文件关闭错误");
}
}
}
}
④ java中怎么统计一个字符串中每个字符的出现次数
操作如下:
String str ="2342asfghgyu56asdasda";Map<String,Integer> maps = new HashMap<String,Integer>();for(int i=0;i<str.length();i++){。
String key = String.valueOf((str.charAt(i)));if(!maps.containsKey(key)),maps.put(key, 1);else{int val =maps.get(key);maps.put(key, val+1);
for(Map.Entry i : maps.entrySet()){System.out.println(i.getKey()+ "=="+i.getValue());
⑤ Java获取字符串中字母出现的个数
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;
}
}