0

我正在介绍编程课程,我们的任务是创建一个程序来分析文件 Names.txt 中提供的名称列表这是我到目前为止的代码(减去一个单独的 java 文件,其中包含一些类名称的方法)由于我的编译错误,任何帮助表示赞赏!

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 of the 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));             
            }           
        }
        while (!selection.equalsIgnoreCase("d"));
    }

    public 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);
            }
        }
        return name;
    }
    public 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] == Integar.parseInt(this))
            {
                    top = top + babyName + "(" + this + ")" + "        ";
            }
            return top;
        }
    }
}'


NameApp.java:27: cannot find symbol
symbol  : method findName()
location: class java.lang.String
                name = nameIn.findName();
                             ^
NameApp.java:34: cannot find symbol
symbol  : method findName()
location: class java.lang.String
                name = nameIn.findName();
                             ^
NameApp.java:37: cannot find symbol
symbol  : method findName()
location: class java.lang.String
                name2 = nameIn.findName();
                              ^
NameApp.java:74: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(first.findRank(decade));
                                        ^
NameApp.java:75: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(second.findRank(decade));
                                         ^
NameApp.java:76: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(third.findRank(decade));
                                        ^
NameApp.java:77: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(fourth.findRank(decade));
                                         ^
NameApp.java:78: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(fifth.findRank(decade));
                                        ^
NameApp.java:79: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(sixth.findRank(decade));
                                        ^
NameApp.java:80: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(seventh.findRank(decade));
                                          ^
NameApp.java:81: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(eighth.findRank(decade));
                                         ^
NameApp.java:82: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(ninth.findRank(decade));
                                        ^
NameApp.java:83: cannot find symbol
symbol  : method findRank(int)
location: class java.lang.String
                System.out.println(tenth.findRank(decade));             
                                        ^
NameApp.java:113: cannot find symbol
symbol  : method equalsIgnoreCase(java.lang.String)
location: class NameApp
            if(this.equalsIgnoreCase(babyName))
                   ^
NameApp.java:118: cannot find symbol
symbol  : variable name
location: class NameApp
        return name;
               ^
NameApp.java:145: cannot find symbol
symbol  : variable Integar
location: class NameApp
            if(popularity[decade - 1] == Integar.parseInt(this))
                                         ^
16 errors
4

1 回答 1

0

您的方法 findName() 、 findRank() 等属于您的类 NameApp。

但是在 main() 中,您在“String”类上调用这些方法 - 这正是编译错误所说的。您需要执行类似 NameApp nameApp = new NameApp(); 之类的操作 nameApp.findName()

哦,你拼错了整数。

使用像 ECLIPSE 这样的编辑器,它将帮助您解决这些问题

于 2013-04-28T03:52:29.977 回答