2013-04-10 7 views
0

이야기에 문자가 나타나는 횟수를 정렬하고 계산하는 프로그램이 있습니다. 내가 가진 한 가지 문제점은 편지를 인쇄하고 정렬되는 동안 발생하는 횟수를 인쇄해야한다는 것입니다.배열에서 문자 가져 오기

if (line == null) break; //check for end of file before doing anything 

line=line.toLowerCase(); 

for (int i = 0 ; i < line.length(); i++) { 
    letter = line.charAt(i); 
    int num = (int)letter; 
    num-=96; 

    if(num>=1 && num<=26) alpha[num]++; 

} 


for(int j=1; j<=26; j++) System.out.println((char)(j+64) +" = "+alpha[j]); 

    int[] minArr = new int[6]; 
    int[] maxArr = new int[6]; 


    Arrays.sort(alpha); 

    // System.out.print("There are "+max+" and "+min); 
    for(int n=1;n<=5;n++) { 
     System.out.println("is the highest with "+alpha[alpha.length-n]); 
     System.out.println("is the lowest with "+alpha[n]); 
     // int max = alpha.length-n; 

     // System.out.println((char)(min+64)+" has the least number of letters" 
    } 

정렬 된 문자를 값으로 가져올 수있는 방법이 있습니까?

답변

0

Map<String,Integer>을 사용하여 문자 수 조합을 저장한다고 생각하십니까? 의 라인을 따라

뭔가 :

SortedMap <String, Integer> alphaMap = new TreeMap<String, Integer>() {}; 

for (int i = 0 ; i < line.length(); i++) { 
    String letter = String.valueOf(line.charAt(i)); 

    if (alphaMap.containsKey(letter)){ 
     alphaMap.get(letter)++; 
    } else { 
     alphaMap.put(letter, 0); 
    } 
} 

당신은 다음 문자로 주문 귀하의 문자 카운트 쌍의지도를 가지고있다. 이 트리를 사용하여 최대 값과 최소값을 찾을 수 있습니다.