- 사용 keySet 반환() 키 세트 (매핑의 문자열 부분)을 검색 할 수 . 이 집합을 반복하고 단어와 그 수를 인쇄하십시오.
내 HashMap에서 키 수를 인쇄하는 데 keySet() 메서드를 사용했지만 아직 수행하지 않은 것은 HashMap 내의 각 단어의 길이를 찾고 문자 수를 출력하는 것입니다. 각 단어 안에. 나는 현재 어떻게해야하는지 확신 할 수 없다. 나는 for 루프를 사용하여 이미 수행 한 keySet()을 반복하고, .length() 메서드와 같은 것을 사용하여 각 단어의 길이를 알아 낸 다음 어떻게 든 프린트 아웃한다고 가정하고있다.
가 여기에 지금까지 내 관련 코드입니다 :
Main 클래스
package QuestionEditor;
import java.util.Set;
public class Main{
public static void main (String[] args) {
WordGroup secondWordGroup = new WordGroup ("When-you-play-play-hard-when-you-work-dont-play-at-all");
Set<String> set = secondWordGroup.getWordCountsMap().keySet();
System.out.println("set : " + set + "\n");
for(String key : set)
{
System.out.println(key);
}
}
}
WodGroup 클래스
package QuestionEditor;
import java.util.HashMap;
public class WordGroup {
String word;
// Creates constructor which stores a string value in variable "word" and converts this into lower case using
// the lower case method.
public WordGroup(String aString) {
this.word = aString.toLowerCase();
}
public String[] getWordArray() {
String[] wordArray = word.split("-");
return wordArray;
}
public HashMap<String, Integer> getWordCountsMap() {
HashMap<String, Integer> myHashMap = new HashMap<String, Integer>();
for (String word : this.getWordArray()) {
if (myHashMap.keySet().contains(word)) {
myHashMap.put(word, myHashMap.get(word) + 1);
} else {
myHashMap.put(word, 1);
}
}
return myHashMap;
}
}
이 작업을 수행하는 방법에 어떤 도움을 크게 감상 할 수있다, 감사.
Key: play has 3 counter
Key: all has 1 counter
Key: at has 1 counter
Key: work has 1 counter
Key: hard has 1 counter
Key: when has 2 counter
Key: you has 2 counter
Key: dont has 1 counter
하지만 제가 실제로이 원하는 각 단어에서 문자의 양을 인쇄하는 것입니다 내 코드를 컴파일 할 때
UPDATE 그래서, 내가 출력을 얻고있다. 그래서 예를 들어, 놀이는 4 번 계산할 것이고, 3 번 계산하면 2 번 계산할 것입니다. 구현 방법에 대한 아이디어가 있습니까?
감사합니다. – Alan