Java错误 - 方法声明无效;需要返回类型

时间:2015-03-24 03:08:54

标签: java syntax-error

我试图完成这个java程序,但每次我尝试编译它时都会遇到此错误。有人可以弄清楚我的程序为什么这样做。似乎无论我做什么,我仍然碰巧在我的程序上出错。我尝试了所有我知道的东西,看看它是否有用。请有人帮助我。

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]);
    }
  }
}

3 个答案:

答案 0 :(得分:1)

'Sorter'方法缺少返回类型。它应该是:

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

该方法不会在任何地方调用,因此我不确定这是否是您打算做的。

答案 1 :(得分:0)

添加void返回类型:

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

答案 2 :(得分:0)

上面的代码中有很多错误 - 请参阅下面的一些代码,但是由于问题的范围有限,我无法确定它是否符合您的要求。

我不想偏离原始问题太远,但您应该考虑使用实例变量并封装数据,而不是依赖于静态变量。

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]);
    }
  }
}