2014-12-03 3 views
0

무엇이 잘못되었는지를 알 수 없습니다. 배열은 Number 또는 int에 있어야합니다.배열 java에 값을 추가하십시오.

여기 내 코드입니다 :

Number[] freq; 

    int place = 0; 

    BufferedReader br = new BufferedReader(new FileReader(new File("this.txt"))); 

    String read; 

    String[] temp; 

    int num; 

    while((read = br.readLine())!=null) 
    { 
     temp = read.split(","); 
     for(int i = 0; i<=temp.length; i++) 
     { 
      String t = temp[i]; 
      num = Integer.parseInt(t); 
      freq[place] = num; 
      place++; 
     } 

    } 

    System.out.println("done"); 

가해야 출력되지 일부 무거운 결과 그러나 나는이 작업이 필요합니다. 항상 오류가 발생합니다.

variable freq might not have been initialized. 
freq[place] = num; 
+4

자바 배열은 동적이지, 당신은 당신이 그들을 사용하기 전에 실제로 어떤 종류의 길이로 초기화해야합니다. – Erik

+0

배열에 포함될 값이 항상 같은 크기는 아닙니다. 배열은 먼저 크기로 초기화해야하지만이 프로그램에서는 텍스트 파일에 얼마나 많은 문자가 있는지에 따라 달라야합니다. – dimmed

+0

그런 다음 크기가 동적 인 ArrayList와 같은 다른 유형의 변수를 사용해야합니다. – Erik

답변

2

배열의 크기를 설정해야합니다. 주석에서 동적이어야한다는 점을 지적 했으므로 대신 ArrayList와 같이 동적 길이와 함께 사용할 수있는 다른 종류의 변수를 사용해야합니다.

이 예를 참조하십시오

// initialize an ArrayList: 
List<Number> freq = new ArrayList<Number>(); 
BufferedReader br = new BufferedReader(new FileReader(new File("this.txt"))); 

String read; 
String[] temp; 

int num; 

while((read = br.readLine())!=null) 
{ 
    temp = read.split(","); 
    for(int i = 0; i<=temp.length; i++) 
    { 
     String t = temp[i]; 
     num = Integer.parseInt(t); 
     freq.add(num); 
    } 

} 

System.out.println("done"); 
+0

잘 작동했습니다! 감사! 이제는 List가 그렇게 될 수 있다는 것을 압니다. – dimmed

3

배열을 초기화해야합니다.

Number[] freq = new Number[someSize]

+0

나를 이길 :) – Haris

+1

에릭이 이겼다고 생각합니다 ... –

0

당신은 당신이 JAVA에서 배열을 사용하기 전에 배열의 크기를 설정해야합니다.

int[] someArray= new int[size] 
+1

int [size]를 의미하셨습니까? –

+1

Java에서 사용할 수있는 Int가 없습니다. – Tom

+0

운영자가 수정되었습니다. – Haris

관련 문제