Home > Software engineering >  Return the number of times a character shows up in a string
Return the number of times a character shows up in a string

Time:03-21

    public class StringFind
{
    /** findLetter looks for a letter in a String
    * @param String letter to look for
    * @param String text to look in
    * @return boolean true if letter is in text
    * After running the code, change this method to return
    * an int count of how many times letter is in the text.
    */
    public int findLetter(String letter, String text)
   {
    int count = 0;
    for(int i=0; i < text.length(); i  )
       {
    if (text.substring(i, i 1).equalsIgnoreCase(letter))
               {
              
    count = count  ;
               }
       }
       
       
    return(count);
      
   }

    public static void main(String args[])
    {
      
    StringFind test = new StringFind();
    String message = "Apples and Oranges";
    String letter = "p";
    System.out.println("Does "   message    " contain a "   letter   "?");
        
    }
}

There is an error with this code and I am not sure how to fix it. This code is supposed to return the number of times a letter shows up in a message that the user inputs. I have struggled to figure out what I need to change without ero

CodePudding user response:

The first mistake is in findLetter where you have

count = count  ; // this is effectively count = count;

That should be

count  ; // or count = count   1;

Then you aren't calling findLetter. Change your current println to something like

System.out.printf("%s contains %s %d times.%n", message, letter, 
        test.findLetter(letter, message));

With no other changes, I then get

Apples and Oranges contains p 2 times.

CodePudding user response:

To complete the answer given by Elliott Frisch, your function has the first parameter wrong it is an char instead of a string and given that, you need to change the way you are finding the char in the string by using the function charAt to make it more simple (https://www.w3schools.com/java/ref_string_charat.asp). It’s not a mandatory change, but I think it makes more sense.

public class StringFind {
    /** findLetter looks for a letter in a String
     * @param String letter to look for
     * @param String text to look in
     * @return boolean true if letter is in text
     * After running the code, change this method to return
     * an int count of how many times letter is in the text.
     */
    public int findLetter(char letter, String text)
    {
        int count = 0;
        for(int i=0; i < text.length(); i  )
        {    if(text.charAt(i) == letter)
            count  ;
        }


        return(count);

    }

    public static void main(String args[])
    {
        StringFind test = new StringFind();
        String message = "Apples and Oranges";
        Character letter = 'p';
        System.out.printf("%s contains %s %d times.%n", message, letter, test.findLetter(letter, message));
    }

}

  • Related