我应该改变,使这个文件编译? [英] What should I change to make this file compile?

查看:128
本文介绍了我应该改变,使这个文件编译?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在编程类,并将该软件是我的功课的一部分。该文件从一个名为names.txt中的文件数据进行分析,然后打印的信息。我收到编译错误,我想知道我需要更改或添加,使其编译成功。

下面是我的code:

 进口java.util.Scanner中;
进口的java.io.File;
进口java.io.FileNotFoundException;公共类NameApp {
公共静态无效的主要(字串[] args){
扫描仪标准输入=新的扫描仪(System.in);
串选择,nameIn,nameIn2;
姓名姓名,名称2;
INT十年;
串第一=1,第二=2,第三=3,第四=4,第五=5,第六=6,第七=7,第八=8,第九=9,第十=10;
做{
的System.out.println(输入的字符对应您的选择:);
的System.out.println(一个 - 一个名字打印直方图);
的System.out.println(B - 十年来比较两个名字);
的System.out.println(C - 在十年打印十大名);
的System.out.println(D - 退出(显示文件异常));
选择= stdin.next();
的System.out.println(您的选择:+选择);
如果(selection.equalsIgnoreCase(一)){
的System.out.println(输入名称:);
nameIn = stdin.next();
名称= nameIn.findName();
的System.out.println(直方图的名字,+ name.getName());
}
如果(selection.equalsIgnoreCase(B)){
的System.out.println(输入名称:);
nameIn = stdin.next();
名称= nameIn.findName();
的System.out.println(输入名称:);
nameIn2 = stdin.next();
名称2 = nameIn.findName();
的System.out.println(所对应的十年中输入数字:);
的System.out.println(1 - 1900至09年);
的System.out.println(2 - 1910至1919年);
的System.out.println(1 - 1920至29年);
的System.out.println(1 - 1930-1939);
的System.out.println(1 - 1940-1949);
的System.out.println(1 - 1950-1959);
的System.out.println(1 - 1960-1969);
的System.out.println(1 - 1970-1979);
的System.out.println(1 - 1980-1989);
的System.out.println(1 - 1990 - 1999年);
的System.out.println(1 - 2000-2005);
的System.out.println(输入一个十年:);
十年= stdin.nextInt();
的System.out.println(数据+ name.getName());
的System.out.println(name.getHistoLine(十年));
的System.out.println(日期为+ name2.getName());
的System.out.println(name2.getHistoLine(十年));
}
如果(selection.equalsIgnoreCase(C)){
的System.out.println(所对应的十年中输入数字:);
的System.out.println(1 - 1900至09年);
的System.out.println(2 - 1910-1919);
的System.out.println(1 - 1920至29年);
的System.out.println(1 - 1930-1939);
的System.out.println(1 - 1940-1949);
的System.out.println(1 - 1950-1959);
的System.out.println(1 - 1960-1969);
的System.out.println(1 - 1970-1979);
的System.out.println(1 - 1980-1989);
的System.out.println(1 - 1990 - 1999年);
的System.out.println(1 - 2000-2005);
的System.out.println(输入一个十年:);
十年= stdin.nextInt();
的System.out.println(十大最受欢迎的名字(男,女)在1990 - 1999年的十年期间:);
的System.out.println(first.findRank(十年));
的System.out.println(second.findRank(十年));
的System.out.println(third.findRank(十年));
的System.out.println(fourth.findRank(十年));
的System.out.println(fifth.findRank(十年));
的System.out.println(sixth.findRank(十年));
的System.out.println(seventh.findRank(十年));
的System.out.println(eighth.findRank(十年));
的System.out.println(ninth.findRank(十年));
的System.out.println(tenth.findRank(十年));
}
如果(!selection.equalsIgnoreCase(一)||!selection.equalsIgnoreCase(B)||!selection.equalsIgnoreCase(C)||!selection.equalsIgnoreCase(D))
;
{
的System.out.println(无效的输入再试一次。);
}
}
而(selection.equalsIgnoreCase(D)!);
如果(selection.equalsIgnoreCase(D)){
}
}
公共静态名称findName(){
字符串文件名=names.txt中;
扫描仪的InputStream = NULL;
尝试{
的InputStream =新扫描仪(新文件(文件名));
}赶上(FileNotFoundException异常五){
的System.out.println(打开文件错误+ InputStream的);
System.exit(0);
}
串线;
而(inputStream.hasNextLine()){
行= inputStream.nextLine();
的String [] = nameLine line.split();
串babyName = nameLine [0];
INT []普及;
对于(INT K = 0; K< nameLine.length; k ++){
普及[K] =的Integer.parseInt(nameLine [K + 1]);
}
如果(this.equalsIgnoreCase(babyName)){
名称name =新名称(babyName,普及);
}其他{
System.out.print(对不起这名未找到);
}
}
返回名称;
}公共静态字符串findRank(INT十年){
字符串文件名=names.txt中;
扫描仪的InputStream = NULL;
尝试{
的InputStream =新扫描仪(新文件(文件名));
}赶上(FileNotFoundException异常五){
的System.out.println(打开文件错误+ InputStream的);
System.exit(0);
}
串顶端=;
串线;
而(inputStream.hasNextLine()){
行= inputStream.nextLine();
的String [] = nameLine line.split();
串babyName = nameLine [0];
INT []普及;
对于(INT K = 0; K< nameLine.length; k ++){
普及[K] =的Integer.parseInt(nameLine [K + 1]);
}
如果(普及[十年 - 1] ==的Integer.parseInt(本)){
顶部=畅销+ babyName +(+这+)+;
}
返回顶部;
}
}
}

下面是编译错误

  NameApp.java:126:';'预期
    公共静态名称findName()
                      ^
NameApp.java:126:无效的方法声明;所需的返回类型
    公共静态名称findName()
                       ^
NameApp.java:161:';'预期
    公共静态字符串findRank(INT十年)
                        ^
NameApp.java:161:无效的方法声明;所需的返回类型
    公共静态字符串findRank(INT十年)
                         ^
4个错误


解决方案

区分大小写可能是您的问题。看看堆栈溢出问题的 就是Java区分大小写?

我会建议改变静态:

 公共静态名称findName()

很多你的工作似乎是错误的在这。例如,你的字符串的声明。

I am in a programming class and this program is part of my homework. This file analyzes data from a file called "Names.txt" and then prints the information. I'm getting compilation errors and I want to know what I need to change or add to make it compile successfully.

Here is my code:

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class NameApp {
    public static void main(String[] args) {
        Scanner stdin = new Scanner(System.in);
        String selection, nameIn, nameIn2;
        Name name, name2;
        int decade;
        String first = "1", second = "2", third = "3", fourth = "4", fifth = "5", sixth = "6", seventh = "7", eighth = "8", ninth = "9", tenth = "10";
        do {
            System.out.println("Enter the character corresponding to your selection:");
            System.out.println("a - Print histogram for a name");
            System.out.println("b - Compare two names in a decade");
            System.out.println("c - Print top ten names for a decade");
            System.out.println("d - Quit (display file anomalies)");
            selection = stdin.next();
            System.out.println("your selection: " + selection);
            if (selection.equalsIgnoreCase("a")) {
                System.out.println("Enter a name: ");
                nameIn = stdin.next();
                name = nameIn.findName();
                System.out.println("Histogram for name, " + name.getName());
            }
            if (selection.equalsIgnoreCase("b")) {
                System.out.println("Enter a name: ");
                nameIn = stdin.next();
                name = nameIn.findName();
                System.out.println("Enter a name: ");
                nameIn2 = stdin.next();
                name2 = nameIn.findName();
                System.out.println("Enter number corresponding to your decade:");
                System.out.println("1 - 1900-1909");
                System.out.println("2 - 1910-1919");
                System.out.println("1 - 1920-1929");
                System.out.println("1 - 1930-1939");
                System.out.println("1 - 1940-1949");
                System.out.println("1 - 1950-1959");
                System.out.println("1 - 1960-1969");
                System.out.println("1 - 1970-1979");
                System.out.println("1 - 1980-1989");
                System.out.println("1 - 1990-1999");
                System.out.println("1 - 2000-2005");
                System.out.println("Enter a decade: ");
                decade = stdin.nextInt();
                System.out.println("Data for " + name.getName());
                System.out.println(name.getHistoLine(decade));
                System.out.println("Date for " + name2.getName());
                System.out.println(name2.getHistoLine(decade));
            }
            if (selection.equalsIgnoreCase("C")) {
                System.out.println("Enter number corresponding to your decade:");
                System.out.println("1 - 1900-1909");
                System.out.println("2 - 1910-1919");
                System.out.println("1 - 1920-1929");
                System.out.println("1 - 1930-1939");
                System.out.println("1 - 1940-1949");
                System.out.println("1 - 1950-1959");
                System.out.println("1 - 1960-1969");
                System.out.println("1 - 1970-1979");
                System.out.println("1 - 1980-1989");
                System.out.println("1 - 1990-1999");
                System.out.println("1 - 2000-2005");
                System.out.println("Enter a decade: ");
                decade = stdin.nextInt();
                System.out.println("Ten most popular names (male and female) during the decade 1990-1999 were: ");
                System.out.println(first.findRank(decade));
                System.out.println(second.findRank(decade));
                System.out.println(third.findRank(decade));
                System.out.println(fourth.findRank(decade));
                System.out.println(fifth.findRank(decade));
                System.out.println(sixth.findRank(decade));
                System.out.println(seventh.findRank(decade));
                System.out.println(eighth.findRank(decade));
                System.out.println(ninth.findRank(decade));
                System.out.println(tenth.findRank(decade));
            }
            if (!selection.equalsIgnoreCase("a") || !selection.equalsIgnoreCase("b") || !selection.equalsIgnoreCase("C") || !selection.equalsIgnoreCase("d"))
                ;
            {
                System.out.println("Invalid input. Try again");
            }
        }
        while (!selection.equalsIgnoreCase("d"));
        if (selection.equalsIgnoreCase("d")) {
        }
    }




    public Static Name findName() {
        String fileName = "Names.txt";
        Scanner inputStream = null;
        try {
            inputStream = new Scanner(new File(fileName));
        } catch (FileNotFoundException e) {
            System.out.println("Error opening the file" + inputStream);
            System.exit(0);
        }
        String line;
        while (inputStream.hasNextLine()) {
            line = inputStream.nextLine();
            String[] nameLine = line.split(" ");
            String babyName = nameLine[0];
            int[] popularity;
            for (int k = 0; k < nameLine.length; k++) {
                popularity[k] = Integer.parseInt(nameLine[k + 1]);
            }
            if (this.equalsIgnoreCase(babyName)) {
                Name name = new Name(babyName, popularity);
            } else {
                System.out.print("Sorry that name was not found");
            }
        }
        return name;
    }

    public Static String findRank(int decade) {
        String fileName = "Names.txt";
        Scanner inputStream = null;
        try {
            inputStream = new Scanner(new File(fileName));
        } catch (FileNotFoundException e) {
            System.out.println("Error opening the file" + inputStream);
            System.exit(0);
        }
        String top = "";
        String line;
        while (inputStream.hasNextLine()) {
            line = inputStream.nextLine();
            String[] nameLine = line.split(" ");
            String babyName = nameLine[0];
            int[] popularity;
            for (int k = 0; k < nameLine.length; k++) {
                popularity[k] = Integer.parseInt(nameLine[k + 1]);
            }
            if (popularity[decade - 1] == Integer.parseInt(this)) {
                top = top + babyName + "(" + this + ")" + "        ";
            }
            return top;
        }
    }
}

Here are the compilation errors

NameApp.java:126: ';' expected
    public Static Name findName()
                      ^
NameApp.java:126: invalid method declaration; return type required
    public Static Name findName()
                       ^
NameApp.java:161: ';' expected
    public Static String findRank(int decade)
                        ^
NameApp.java:161: invalid method declaration; return type required
    public Static String findRank(int decade)
                         ^
4 errors

解决方案

Case sensitivity could be your issue. Check out Stack Overflow question Is Java case-sensitive?.

I would suggest altering the case of static:

public static Name findName()

A lot of your work seems wrong in this. For example, declarations of your strings.

这篇关于我应该改变,使这个文件编译?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆