이 코드는 수백 개의 이름을 조사하고 그 이름과 의미를 찾습니다. 두 가지 질문이 있습니다. 오류가 발생한 위치를 달성하기 위해 노력하고있는 것은 이름의 의미에 대한 텍스트를 내 그래프의 맨 위에 인쇄하는 것입니다. findingStatistics 두 번, 변수 통계는 이름의 의미에 대한 정보를 보유를 통해 실행 시간으로파일/변수 오류 Java
BabyNames.java:82: error: cannot find symbol
String meanings = findingStatistics(console,meaningsFile);
2 : 1. 어떻게하면이 오류를 해결할 수 있습니다. 그래프를 사용하려면 이름의 인기도에 어떻게 액세스합니까? 지금 나는 통계와 동등한 전체 방법을 가졌습니다. 이것은 단지 의미입니다. 여기
내 코드입니다 : 나는 오류가 있었고이 포함되지 무엇에 //를 추가하는 경우import java.util.*;
import java.io.*;
import java.awt.*;
public class BabyNames{ //ADD COMMENTS
public static final int STARTINGYEAR = 1890;
public static final int WIDTH = 60;
public static final int HEIGHT = 30;
private static String nameFinal;
public static void main(String[] args) throws FileNotFoundException{
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();
fixedGraph(g);
nameFinal = nameToLowerCase(console);
if(STARTINGYEAR == 1890){
findingStatistics(console,nameFile);;
changingGraph(console,g);
}
else{
findingStatistics(console, nameFile2);
changingGraph(console,g);
}
findingStatistics(console,meaningsFile);
}
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){
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 static void fixedGraph(Graphics g){ //Draws fixed things such as gray blocks and black lines
g.setColor(Color.LIGHT_GRAY);
g.fillRect(0,0,780,HEIGHT);
g.fillRect(0,560-HEIGHT,780,HEIGHT);
g.setColor(Color.BLACK);
g.drawLine(0,HEIGHT,780,HEIGHT);
g.drawLine(0,560-HEIGHT,780,560-HEIGHT);
}
public static void changingGraph(Scanner console, Graphics g){
String meanings = findingStatistics(console,meaningsFile);
g.drawString("" + meanings,0,16); //draws meaning text
int startingYear = STARTINGYEAR;
int amountOfDecades = 0;
if(startingYear == 1890){
amountOfDecades = 13;
}
else{
amountOfDecades = 8;
}
g.drawString("" + startingYear,0,552); //fencepost
for(int i=0; i<=amountOfDecades;i++){
int year = startingYear + (10 * i);
g.drawString("" + year,(WIDTH*i),552); //draws decade numbers
}
}
}
, 그냥 그렇게 하나가 이름에 대한 코드를 더 잘 이해 할 수 있습니다 "아론은"그것은 인쇄해야 아웃 : 얼마
Name: AARON
Aaron f 0 0 0 0 0 0 0 0 0 883 0 0 0
AARON m English, Biblical From the Hebrew name ??????? ('Aharon) which is most likely of unknown Egyptian origin.
, 나는 그것이 그래프에 텍스트를 인쇄 할 수 있도록 노력하고, 의미와 인기 (I 통계에서 둘 다이) 두 개의 변수를 만들고있어.
"의미"가 "인기"라고 생각하십니까? nameFiles에는 인기있는 정보가 들어 있기 때문입니다. 당신은 "findingStatistics (console, meaningsFile)을 찾았습니다;"?? –
아니요, 나는 '의미'가 '인기'라는 뜻이 아니 었습니다. 당신이'main'에서 호출하기 때문에'findingStatistics'에 대한 호출을 취소했습니다. –
그걸로 인기 정보 만 인쇄하고 의미는 아닙니다 –