Austin Jon Magalong
Austin Jon Magalong

Reputation: 21

Java error - invalid method declaration; return type required

I'm trying to complete this java program, but every time I try to compile it I get this error. Can someone figure out why my program is doing this. It seems that no matter what I do I still happen to get an error on my program. I tried everything I know to see if it would work. Please someone help me.

import java.util.Scanner;
public class Period
{
  private static String phrase;
  public static void main(String [] args)
  {
    Scanner keyboard = new Scanner(System.in);
    String userInput;
    int[] letter = new int [27];
    int number = keyboard.nextInt();
    System.out.println("Enter a sentence with a period at the end.");
    userInput = keyboard.nextLine();
    userInput.toLowerCase();
  }
  // this is where the error is occuring at.
  public Sorter(String newPhrase)
  {
    phrase=newPhrase.substring(0,newPhrase.indexOf("."));
  }

  private int charToInt(char currentLetter)
  {
    int converted=(int)currentLetter-(int)'a';
    return converted;
  }

  private void writeToArray()
  {
    char next;
    for (int i=0;i<phrase.length();i++)
    {
      next=(char)phrase.charAt(i);
      sort(next);
    }
  }

  private String cutPhrase()
  {
    phrase=phrase.substring(0,phrase.indexOf("."));
    return phrase;
  }

  private void sort(char toArray)
  {
    int placement=charToInt(toArray);
    if (placement<0)
    {
      alphabet[26]=1;
    }
    else
    {
      alphabet[placement]=alphabet[placement]+1;
    }
  }

  public void entryPoint()
  {
    writeToArray();
    displaySorted();
  }

  private void displaySorted()
  {
    for (int q=0; q<26;q++)
    {
      System.out.println("Number of " + (char)('a'+q) +"'s: "+alphabet[q]);
    }
  }
}

Upvotes: 0

Views: 2065

Answers (3)

Xcalibur
Xcalibur

Reputation: 3763

There are a lot of errors in the above code - see below for some code that runs, though i can't be sure it does exactly what you want given the limited scope of the question.

I don't want to stray too far from the original question, but you should really consider using instance variables and encapsulating your data, rather than relying on static variables.

import java.util.Scanner;

public class Period
{
  private static String phrase;
  private static int[] alphabet = new int [27];

  public static void main(String [] args)
  {
    System.out.println("Enter a sentence with a period at the end.");

    Scanner keyboard = new Scanner(System.in);
    phrase = keyboard.nextLine().toLowerCase();

    Period period = new Period();
    period.entryPoint();
  }

  public void Sorter(String newPhrase)
  {
    phrase = newPhrase.substring(0,newPhrase.indexOf("."));
  }

  private int charToInt(char currentLetter)
  {
    int converted=(int)currentLetter-(int)'a';
    return converted;
  }

  private void writeToArray()
  {
    char next;
    for (int i=0;i<phrase.length();i++)
    {
      next=(char)phrase.charAt(i);
      sort(next);
    }
  }

  private String cutPhrase()
  {
    phrase=phrase.substring(0,phrase.indexOf("."));
    return phrase;
  }

  private void sort(char toArray)
  {
    int placement=charToInt(toArray);
    if (placement<0)
    {
      alphabet[26]=1;
    }
    else
    {
      alphabet[placement]=alphabet[placement]+1;
    }
  }

  public void entryPoint()
  {
    writeToArray();
    displaySorted();
  }

  private void displaySorted()
  {
    for (int q=0; q<26;q++)
    {
      System.out.println("Number of " + (char)('a'+q) +"'s: "+alphabet[q]);
    }
  }
}

Upvotes: 0

Xcalibur
Xcalibur

Reputation: 3763

The 'Sorter' method is missing a return type. It should be:

public void Sorter(String newPhrase)
{
    phrase = newPhrase.substring(0, newPhrase.indexOf("."));
}

The method is not called anywhere, so i am not sure if this is what you intended it to do.

Upvotes: 1

G Bisconcini
G Bisconcini

Reputation: 764

add the void return type:

 public void Sorter(String newPhrase) // HERE
  {
phrase=newPhrase.substring(0,newPhrase.indexOf("."));
  }

Upvotes: 0

Related Questions