문자열의 문자 빈도 계산
프로그래밍의 일반적인 작업은 주어진 문자열에서 문자의 빈도를 계산하는 것입니다. "aasjjikkk"라는 문자열이 있다고 가정해 보겠습니다. 우리는 "2 'a', 1 's', 2 'j', 1 'i', 3 'k'"가 되는 각 고유 문자의 개수를 확인하려고 합니다.
해결책 Java 맵 사용
한 가지 효율적인 솔루션은 키(이 경우 문자)를 값(발생 횟수)과 연결하는 Java 맵을 활용하는 것입니다. 문자열을 탐색하여 각 문자가 이미 맵에 있는지 확인합니다. 그렇다면 개수를 늘립니다. 그렇지 않으면 1개로 삽입합니다.
<code class="java">Map<Character, Integer> map = new HashMap<>(); String s = "aasjjikkk"; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); Integer val = map.get(c); if (val != null) { map.put(c, val + 1); } else { map.put(c, 1); } }
이 접근 방식은 키-값 쌍 형식으로 문자 수를 자연스럽게 표현합니다.
다음을 사용하는 대체 솔루션 Multiset
또는 Guava의 Multiset 데이터 구조를 사용하면 맵을 명시적으로 유지하지 않고도 요소의 발생 횟수를 계산할 수 있습니다.
<code class="java">Multiset<Character> multiset = HashMultiset.create(); String s = "aasjjikkk"; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); multiset.add(c); }</code>
이제 multiset은 문자열입니다.
위 내용은 문자열의 문자 빈도를 효율적으로 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!