문자열에 나타나는 모든 문자의 목록을 Java로 표시 할 수있는 방법은 무엇입니까? "지금 정말 바쁩니다"라는 문자열이 있다고 가정 해 봅시다.숫자가있는 문자열의 모든 문자 가져 오기
i-2, a-2, r-2, m-1 등등.
문자열에 나타나는 모든 문자의 목록을 Java로 표시 할 수있는 방법은 무엇입니까? "지금 정말 바쁩니다"라는 문자열이 있다고 가정 해 봅시다.숫자가있는 문자열의 모든 문자 가져 오기
i-2, a-2, r-2, m-1 등등.
모든 문자와 개수의 매핑 만하면됩니다. 문자 배열 String
을 String#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을 확인,지도에 대한 자세한 내용은.
문자는 더 이상 불행히도 문자가 아닙니다. –
숙제입니까? 그것을 모른 채 나는 최선의 노력을 다할 것입니다.
문제 뒤에 논리는 하나 개의 문자 문자 시간
int
의 배열을 할 수 있습니다 이 방법으로 올바른 카운터를 검색 할 필요없이 올바른 색인 만 증가시킬 수 있습니다.아니요. 내 프로젝트에만 필요합니다. – terence6
나는 당신의 정확한 요구 모르겠어요하지만 당신에 관계없이 사건의 발생을 계산이 같은 것을 할 수 있습니다 그래서 아마도 등 공백, 같은 문자를 무시하려는 것 같다
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());
}
을
정확한 요구 사항을 충족시키기 위해 정규식을 조정하십시오 (구두점을 건너 뛰기 등).
"문자"를 정의하십시오. 32 비트 유니 코드 코드 포인트입니까? 차이를 만들 수 있습니다. –
이것은 매우 간단한 코드 kata로 잘 작동 할 수 있습니다. –