Java查找字符的频率
在该程序中,我们需要查找单词中每个字符的频率。
图片完美
要完成此任务,我们将维护一个名为freq的数组,该数组的大小与字符串的长度相同。频率将用于维护字符串中每个字符的计数。现在,遍历字符串以将每个字符与字符串的其余部分进行比较。以频率为单位递增相应元素的计数。最后,遍历频率以显示字符的频率。
例如: 上述字符串中p的频率为2。
算法
步骤1: START
步骤2: DEFINE String str = "picture perfect"
步骤3: 初始化具有相同大小的streq[]。
步骤4: 定义i,j
步骤5: 将str转换为char[]字符。
步骤6: SET i = 0。重复步骤7至11
步骤7: 设置freq[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: SET i = 0。直到i重复步骤14至步骤15
步骤14: IF(string [i]!=''&& string [i]!='0')然后是
PRINT string [i],freq [i]
步骤15: i = i + 1
STEP 16: END
程序:
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