查找字符出现的频率的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 

 

热门文章

优秀文章