① 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;
}
}