gpt4 book ai didi

java - 为什么编译器会提示 illegal start of expression 错误消息?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:11:20 25 4
gpt4 key购买 nike

此代码会查看多个文件,以查找您输入的任何名称的流行度和含义。有错误的类常量用于我尚未在类中制作的图表。它们现在没有被使用,但很快就会被使用。

我遇到了这些错误:

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;

我想我这里有所有正确的分号,但我不确定发生了什么这是我的代码:

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

最佳答案

这些在 Java 中称为常量,它们应该在类本身中定义,而不是在其主要方法中定义。

public static final int STARTINGYEAR = 1890;
.....

现在,如果您删除 public static,您可以将它们保留在您的 main 方法中,但似乎这不是您想要的。此外,这将无法在其他方法中使用它们,因为它们将成为 main 方法的局部最终变量。

关于java - 为什么编译器会提示 illegal start of expression 错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759184/

25 4 0
文章推荐: java - 为什么简单的选择查询返回 List 但在 jpa 中加入查询返回 List