Java程序来计算字符串中每个字符的频率
时间:2020-01-09 10:35:25 来源:igfitidea点击:
在本文中,我们将看到一个Java程序来计算字符串中每个字符的频率。这里给出了两种计算每个字符在字符串中出现的次数的方法。
- 使用HashMap,其中character是键,count是值。对于每个字符,我们都需要验证密钥是否已存在于HashMap中。如果是的话,请增加计数,否则将其作为新密钥添加到地图中,计数为1. 请参见示例。
- 另一种方法是使用char数组,我们将必须在数组的第一个索引处获取char并迭代整个数组以检查是否再次找到该char,如果是,则增加计数。最后,使用String类的replace()方法删除该字符的所有出现。参见示例。
Java程序使用HashMap计数每个字符的频率
import java.util.HashMap; import java.util.Map; import java.util.Set; public class CountChars { public static void main(String[] args) { CountChars.countCharactersMap("This is a test line"); } public static void countCharactersMap(String str){ Map<Character, Integer> charMap = new HashMap<Character, Integer>(); for(int i = 0; i < str.length(); i++){ char c = str.charAt(i); // For space or tab skip the process if(((c == ' ') || (c == '\t'))){ continue; } // if character is already there in the map // increment the count if(charMap.containsKey(c)){ charMap.put(c, charMap.get(c) + 1); }else{ // If new character put that character in the map // with the value as 1 charMap.put(c, 1); } } // Displaying the map values Set<Map.Entry<Character, Integer>> numSet = charMap.entrySet(); for(Map.Entry<Character, Integer> m : numSet){ System.out.println(m.getKey() + " - " + m.getValue()); } } }
输出
a - 1 s - 3 T - 1 t - 2 e - 2 h - 1 i - 3 l - 1 n - 1
使用char数组和String replace()方法
这是一个Java程序,用于使用char数组和String replace()方法对String中每个字符的频率进行计数。
public class CountChars { public static void main(String[] args) { CountChars.countCharacters("This is a test line"); } public static void countCharacters(String str){ char[] strArr; do{ strArr = str.toCharArray(); char ch = strArr[0]; int count = 1; for(int i = 1; i < strArr.length; i++){ if(ch == strArr[i]){ count++; } } // don't display for space or tab if(((ch != ' ') && (ch != '\t'))){ System.out.println(ch + " - " + count); } // replace all occurrence of the character // which is already counted str = str.replace(""+ch, ""); // If string is of length 0 then come // out of the loop if(str.length() == 0) { break; } }while(strArr.length > 1); } }
输出
T - 1 h - 1 i - 3 s - 3 a - 1 t - 2 e - 2 l - 1 n - 1