2010-05-30 4 views
3

문자열에 나타나는 모든 문자의 목록을 Java로 표시 할 수있는 방법은 무엇입니까? "지금 정말 바쁩니다"라는 문자열이 있다고 가정 해 봅시다.숫자가있는 문자열의 모든 문자 가져 오기

i-2, a-2, r-2, m-1 등등.

+1

"문자"를 정의하십시오. 32 비트 유니 코드 코드 포인트입니까? 차이를 만들 수 있습니다. –

+0

이것은 매우 간단한 코드 kata로 잘 작동 할 수 있습니다. –

답변

4

모든 문자와 개수의 매핑 만하면됩니다. 문자 배열 StringString#toCharArray()으로 가져와 enhanced for loop을 사용하여 루프 할 수 있습니다. 매 반복마다 매핑에서 카운트를 가져 와서없는 경우 설정하고 1로 증가시키고 다시 맵에 넣습니다. 꽤 직설적 인.

여기에 기본 킥오프 예입니다 :

String string = "I am really busy right now"; 
Map<Character, Integer> characterCounts = new HashMap<Character, Integer>(); 
for (char character : string.toCharArray()) { 
    Integer characterCount = characterCounts.get(character); 
    if (characterCount == null) { 
     characterCount = 0; 
    } 
    characterCounts.put(character, characterCount + 1); 
} 

Sun tutorial on the subject을 확인,지도에 대한 자세한 내용은.


귀하는 "이 프로젝트"의 댓글을 달았지만 아주 기본적인 그리고 괜찮은 자바 책/튜토리얼의 첫 번째 장에서 설명하기 때문에 그러나 일반적인 숙제 질문입니다. Java를 처음 사용하는 사람이라면 Sun Trails Covering the Basics을 사용하는 것이 좋습니다.

+0

문자는 더 이상 불행히도 문자가 아닙니다. –

0

숙제입니까? 그것을 모른 채 나는 최선의 노력을 다할 것입니다.

문제 뒤에 논리는 하나 개의 문자 문자 시간

  • 카운트에서

    • 이동 trought 목록입니다 : 가능한 문자 (유니 코드 제외)이기 때문에 단지 256 256 int의 배열을 할 수 있습니다 이 방법으로 올바른 카운터를 검색 할 필요없이 올바른 색인 만 증가시킬 수 있습니다.
  • +0

    아니요. 내 프로젝트에만 필요합니다. – terence6

    0

    나는 당신의 정확한 요구 모르겠어요하지만 당신에 관계없이 사건의 발생을 계산이 같은 것을 할 수 있습니다 그래서 아마도 등 공백, 같은 문자를 무시하려는 것 같다

    String initial = "I am really busy right now"; 
    
    String cleaned = initial.replaceAll("\\s", "") //remove all whitespace characters 
         .toLowerCase(); // lower all characters 
    
    Map<Character, Integer> map = new HashMap<Character, Integer>(); 
    for (char character : cleaned.toCharArray()) { 
        Integer count = map.get(character); 
        count = (count!=null) ? count + 1 : 1; 
        map.put(character, count); 
    } 
    
    for (Map.Entry<Character, Integer> entry : map.entrySet()) { 
        System.out.println(entry.getKey() + " : " + entry.getValue()); 
    } 
    

    정확한 요구 사항을 충족시키기 위해 정규식을 조정하십시오 (구두점을 건너 뛰기 등).

    관련 문제