Warum tut der compiler sich beschweren, mit illegal start of expression Fehlermeldung?
Sieht dieser code über mehrere Dateien zu finden, die Beliebtheit und Bedeutung von was auch immer Namen, den Sie geben. Die Klasse Konstanten, die Fehler für eine Grafik habe ich noch innerhalb der Klasse. Nicht jetzt, aber bald.
Ich bin immer diese Fehler:
BabyNames.java:8: error: illegal start of expression
public static final int STARTINGYEAR = 1890;
^
BabyNames.java:8: error: illegal start of expression
public static final int STARTINGYEAR = 1890;
^
BabyNames.java:8: error: ';' expected
public static final int STARTINGYEAR = 1890;
^
BabyNames.java:9: error: illegal start of expression
public static final int WIDTH = 60;
^
BabyNames.java:9: error: illegal start of expression
public static final int WIDTH = 60;
^
BabyNames.java:9: error: ';' expected
public static final int WIDTH = 60;
^
BabyNames.java:10: error: illegal start of expression
public static final int HEIGHT = 30;
^
BabyNames.java:10: error: illegal start of expression
public static final int HEIGHT = 30;
^
BabyNames.java:10: error: ';' expected
public static final int HEIGHT = 30;
Ich glaube, ich habe all die richtigen semi Doppelpunkte hier, aber ich bin mir nicht sicher, was Los ist
Hier ist mein code:
import java.util.*;
import java.io.*;
//import java.lang.*;
public class BabyNames{ //ADD COMMENTS
public static void main(String[] args) throws FileNotFoundException{
public static final int STARTINGYEAR = 1890;
public static final int WIDTH = 60;
public static final int HEIGHT = 30;
Scanner console = new Scanner(System.in);
DrawingPanel panel = new DrawingPanel(780,560);
Graphics g = panel.getGraphics();
Scanner nameFile = new Scanner(new File("names.txt"));
Scanner meaningsFile = new Scanner(new File("meanings.txt"));
Scanner nameFile2 = new Scanner(new File("names2.txt"));
intro();
//nameToLowerCase(console);
if(STARTINGYEAR = 1890){
findingStatistics(console,nameFile);
}
else{
findingStatistics(console, nameFile2);
drawGraph(g);
}
public static void intro(){
System.out.println("This program allows you to search through the");
System.out.println("data from the Social Security Administration");
System.out.println("to see how popular a particular name has been");
System.out.println("since 1890" );
System.out.println();
System.out.print("Name: ");
}
public static String nameToLowerCase(Scanner console, Scanner data){
String originalName = console.next();
String name = "" ;
int lengthOfName = originalName.length();
String beginingOfName = originalName.substring(0,1).toUpperCase();
String endOfName = originalName.substring(1,lengthOfName).toLowerCase();
name = beginingOfName + endOfName;
return name;
}
public static String findingStatistics(Scanner console, Scanner data){
String nameFinal = nameToLowerCase(console);
boolean goesThroughOnce = false; //
String statistics = "";
String currWord = "";
String currLine = "";
while (data.hasNext() && goesThroughOnce == false){
currLine = data.nextLine();
Scanner lineBeingRead = new Scanner(currLine); //make other scanners?? for each file
currWord = lineBeingRead.next(); //
if (currWord.equals(nameFinal) || currWord.equals(nameFinal.toUpperCase())){ //
statistics = currLine;
goesThroughOnce = true;
System.out.println(statistics);
}
else{
}
}
return statistics;
}
public
ist kein gültiges Attribut für eine Methode die lokalen Variablen, noch iststatic
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese werden als Konstanten in Java, und Sie sollten definiert werden, die in der Klasse selbst, nicht in seiner main-Methode.
Nun, wenn Sie entfernen die
public static
können Sie halten Sie in Ihrer main-Methode scheint aber, dass ist nicht das, was Sie soll. Auch dies wird es unmöglich machen, Sie zu nutzen, das in anderen Methoden, da Sie zu lokalen final-Variablen der main-Methode.Gibt es mehrere Fehler:
verschieben statische member aus der main-Methode
DrawingPanel importiert werden muss (im Falle Ihr nicht in der gleichen Paket)
Entweder ändern params von
nameToLowerCase(Scanner-Konsole, Scanner-Daten)
zu
oder fügen Sie die Sekunden parameter auf seinen Anruf
Solche Fehler zu vermeiden empfehle ich die Verwendung einer ide wie eclipse oder intellij.
Bewegen Sie Ihre statische member, die außerhalb der main-Methode :
- Und Einrücken Ihres Codes, was würde Ihnen helfen, suchen Sie die fehlende geschweifte Klammern (wie in der Ende der Methode main).
main
Methode.(})
, nicht ein;
!}
nicht ein fehlendes Semikolon, denke ich.