简体   繁体   English

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

[英]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.我正在尝试完成这个 java 程序,但是每次我尝试编译它时都会出现此错误。 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]);
    }
  }
}

The 'Sorter' method is missing a return type. 'Sorter' 方法缺少返回类型。 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.该方法未在任何地方调用,因此我不确定这是否是您打算执行的操作。

add the void return type:添加 void 返回类型:

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM