2013-03-07 4 views
0

아래 코드는 txt 파일의 모든 단어를 취하고 그 옆에 숫자 1 (개수)을 인쇄합니다. 내 프로그램의 목표는 그 일을하는 것처럼 모든 단어를 취하는 것입니다. 그러나 중복되는 경우 단어를 인쇄하고 싶지 않습니다. 일치하는 단어를 찾아 내고 그 단어를 하나 추가하는 것이 좋습니다.배열에서 중복 찾기 및 카운트에 추가

Map<String, Integer> map = new HashMap<String, Integer>(); 
... 

while (in.hasNext()) { 
    String w = in.next(); 

    if (map.containsKey(w)) { // Already in the map 
     map.put(w, map.get(w) + 1); // Increment the counter 
    } else { // First time w is found, initialize the counter to 1 
     map.put(w, 1); 
    } 
} 

기본적으로, 맵 (값 (여기에 당신이 계산 할 단어를) 현재의 발생 #을 키를 연관되어

Scanner in = new Scanner(new File(filename)); 
int i = 0; 
int n = 1; 
String w = ""; 
String txt = ""; 

while ((in.hasNext())) { 
    w = in.next() ; 
    wrd[i] = w; 
    num[i] = n; 
    i++; 
    txt = wrd[i]; 

} 
+0

제안 - ** '스캐너'를 사용하여 '파일'에서 읽는 것을 피하십시오. 'FileReader'가 당신에게 무슨 잘못을 저질렀습니까? – SudoRahul

답변

4

당신은지도를 사용하려면 워드). containsKey은 어떤 값이 주어진 키와 아직 관련되어 있는지 확인하고 get이 해당 값을 검색하면 (있는 경우) put이 새 값을 설정합니다.