查找字符出现的频率的Java程序
1 说明
在此程序中,我们需要找到单词中每个字符的出现频率。
Picture perfect
为了完成此任务,我们将维护一个名为freq的数组,该数组的长度与字符串的长度相同。频率将用于维护字符串中每个字符的计数。现在,遍历字符串以将每个字符与字符串的其余部分进行比较。以频率为单位递增相应元素的计数。最后,遍历频率以显示字符的频率。
例如:上面字符串中p的频率为2。
2 算法思路
- 步骤1:开始
- 步骤2: 定义String str = "picture perfect"
- 步骤3:初始化具有相同大小的str的freq []。
- 步骤4:定义i,j
- 步骤5:将str转换为char string []。
- 步骤6:设定i = 0。重复步骤7至11,直到i
- 步骤7:设置频率[i] = 1
- 步骤8: SET j = i + 1。直到j将步骤9重复到步骤10
- 步骤9:先先先经过IF(string [i] == string [j]),然后再
freq [i] ++
string [j] = 0 - 步骤10: j = j + 1
- 步骤11: i = i + 1
- 步骤12:打印“Characters and their corresponding frequencies”
- 步骤13:设定i = 0。重复步骤14至步骤15,直到i
- 步骤14: IF(string [i]!=''&& string [i]!='0')然后
PRINT string [i],freq [i] - 步骤15: i = i + 1
- 步骤16:结束
3 程序实现
/**
* 一点教程网: http://www.yiidian.com
*/
public class FrequencyCharacter
{
public static void main(String[] args) {
String str = "picture perfect";
int[] freq = new int[str.length()];
int i, j;
//Converts given string into character array
char string[] = str.toCharArray();
for(i = 0; i <str.length(); i++) {
freq[i] = 1;
for(j = i+1; j <str.length(); j++) {
if(string[i] == string[j]) {
freq[i]++;
//Set string[j] to 0 to avoid printing visited character
string[j] = '0';
}
}
}
//Displays the each character and their corresponding frequency
System.out.println("Characters and their corresponding frequencies");
for(i = 0; i <freq.length; i++) {
if(string[i] != ' ' && string[i] != '0')
System.out.println(string[i] + "-" + freq[i]);
}
}
}
以上代码输出结果为:
Characters and their corresponding frequencies
p-2
i-1
c-2
t-2
u-1
r-2
e-3
f-1
热门文章
优秀文章