Java >> Java tutorial >  >> Tag >> String

Java-program til at finde frekvensen af ​​tegn i streng

I denne øvelse lærer vi, hvordan man tæller hyppigheden af ​​tegn i en streng. Det betyder, at vi tæller, hvilket tegn der er til stede, hvor mange gange i strengen.

Dette kan gøres ved først at gentage strengen og derefter beregne antallet af gange, tegnene er opstået. Men før du går videre, hvis du ikke er bekendt med begrebet streng, så tjek artiklen om Strings i Java.

Input: Indtast strengen:Study Tonight

Output: Tegnene og deres tilsvarende frekvenser:

Tegn =Frekvenser

S =1

t =2

u =1

d =1

y =1

T =1

o =1

n =1

i =1

g =1

h =1

Program 1:Tæl hyppigheden af ​​tegn i en streng

I dette program vil vi se, hvordan man tæller frekvensen af ​​et tegn i en streng, når strengen er foruddefineret i programmet.

Algorithme

  1. Start

  2. Erklære en streng

  3. Initialiser det.

  4. Brug et frekvensarray til at gemme frekvensen af ​​hvert tegn.

  5. Konverter strengen til et tegnarray

  6. Brug to til sløjfer til at beregne frekvensen af ​​hvert element.

  7. Brug den første for-løkke til at iterere gennem hvert tegn i arrayet.

  8. Initialiser hvert element i frekvensarrayet som 1.

  9. Brug en anden for-løkke til at gentage de resterende tegn.

  10. Tjek for den samlede forekomst af elementet.

  11. Hvis elementet opstår igen, skal du øge værdien i frekvensarrayet.

  12. Indstil tegnarrayet til 0 for at undgå at tælle besøgte tegn.

  13. Udskriv tegnene og deres tilsvarende frekvens.

  14. Stop.

Nedenfor er Java-koden til at tælle hyppigheden af ​​tegn i Java String.

/*Java Program to find the frequency of characters in a string*/
public class Main  
{  
     public static void main(String[] args) 
     {  
        String str = "Study Tonight";  
        int[] freq = new int[str.length()];  
        System.out.println("The entered string is "+str);
        //Convert the given string into character array  
        char str1[] = str.toCharArray();            
        for(int i = 0; i <str.length(); i++) 
        {  
            freq[i] = 1;  
            for(int j = i+1; j <str.length(); j++) 
            {  
                if(str1[i] == str1[j])
                {  
                    freq[i]++;  
                      
                    //Set str1[j] to 0 to avoid printing visited character  
                    str1[j] = '0';  
                }  
            }  
        }            
        //Displays the characters and their corresponding frequency  
        System.out.println("Frequencies of the characters in the string are as below: "); 
        System.out.println("Characters  frequencies");  
        for(int i = 0; i <freq.length; i++) 
        {  
            if(str1[i] != ' ' && str1[i] != '0')  
                System.out.println(str1[i] + "              " + freq[i]);  
        }  
    }  
}  


Den indtastede streng er Study Tonight
Frekvenserne af tegnene i strengen er som nedenfor:
Tegnfrekvenser
S 1
t 2
u 1
d 1
å 1
T 1
o 1
n 1
i 1
g 1
t 1

Program 2:Tæl hyppigheden af ​​tegn i en streng

I dette program vil vi se, hvordan man tæller frekvensen af ​​et tegn i en streng, når strengen er brugerdefineret. Her vil vi i dette program bede brugeren om at indtaste en streng, og derefter beregner vi hyppigheden af ​​tegnene i strengen.

Algorithme

  1. Start

  2. Erklære en streng

  3. Bed brugeren om at initialisere den.

  4. Brug et frekvensarray til at gemme frekvensen af ​​hvert tegn.

  5. Konverter strengen til et tegnarray

  6. Brug to til sløjfer til at beregne frekvensen af ​​hvert element.

  7. Brug den første for-løkke til at iterere gennem hvert tegn i arrayet.

  8. Initialiser hvert element i frekvensarrayet som 1.

  9. Brug en anden for-løkke til at gentage de resterende tegn.

  10. Tjek for den samlede forekomst af elementet.

  11. Hvis elementet opstår igen, skal du øge værdien i frekvensarrayet.

  12. Indstil tegnarrayet til 0 for at undgå at tælle besøgte tegn.

  13. Udskriv tegnene og deres tilsvarende frekvens.

  14. Stop.

Nedenfor er Java-koden til at tælle hyppigheden af ​​tegn i Java String.

/*Java Program to find the frequency of characters in a string*/
import java.util.Scanner;
public class Main  
{  
     public static void main(String[] args) 
     {  
         //Take input from the user
        Scanner sc=new Scanner(System.in); 
        System.out.println("Enter the  string is: "); 
        String str = sc.nextLine();         
        int[] freq = new int[str.length()];   //Frequency array to store the frequency of each character
        //Convert the given string into character array  
        char str1[] = str.toCharArray();            
        for(int i = 0; i <str.length(); i++) 
        {  
            freq[i] = 1;  
            for(int j = i+1; j <str.length(); j++) 
            {  
                if(str1[i] == str1[j])
                {  
                    freq[i]++;  
                      
                    //Set str1[j] to 0 to avoid printing visited character  
                    str1[j] = '0';  
                }  
            }  
        }            
        //Displays the characters and their corresponding frequency  
        System.out.println("Frequencies of the characters in the string are as below: "); 
        System.out.println("Characters  frequencies");  
        for(int i = 0; i <freq.length; i++) 
        {  
            if(str1[i] != ' ' && str1[i] != '0')  
                System.out.println(str1[i] + "              " + freq[i]);  
        }  
    }  
}  


Indtast strengen er:Tegn Frekvensantal
Frekvenserne for tegnene i strengen er som nedenfor:
Tegnfrekvenser
C 2
h 1
a 2
r 3
c 2
t 2
e 3
s 1
F 1
q 1
u 2
n 2
å 1
o 1


Java tag