我在编程类的介绍中,我们的任务是创建一个程序来分析文件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
答案 0 :(得分:0)
您的方法findName(),findRank()等属于您的类NameApp。
但是在main()中,你在“String”类上调用这些方法 - 这正是编译错误所说的。 你需要instaad做类似的事情 NameApp nameApp = new NameApp(); nameApp.findName()
哦,你把整数拼错了。
使用像ECLIPSE这样的编辑器,它将帮助您解决这些问题