단일 단어를 String으로 반환하는 메서드가 있습니다. 텍스트 덩어리를 읽는 방법으로 반환 된 모든 단어를 계산해야합니다. 문제는 카운트가 맞지만 출력이 잘못되었습니다. 그것은 반복됩니다. 일이 잘못되어가는 것은 확실하지 않습니다.wordCount 주파수가 반복적으로 반환됩니다. Java에서 설정
private int totalWords = 0;
private static Map<String, Integer> wordFrequency = new HashMap<String, Integer>();
public static void findResult(CharacterReader characterReader)
{
boolean x = true;
CharBuffer buffer = CharBuffer.allocate(100);
String str = "";
try
{
while(x)
{
char cha = characterReader.getNextChar();
Set<Character> charSet = new HashSet<Character>();
charSet.add(',');
charSet.add('.');
charSet.add(';');
charSet.add(':');
charSet.add('\'');
charSet.add('~');
charSet.add('?');
charSet.add('!');
charSet.add('%');
while(cha != ' ' && !charSet.contains(cha))
{
buffer.put(cha);
cha = characterReader.getNextChar();
}
buffer.flip();
str = buffer.toString();
buffer.clear();
countWords(str);
System.out.println(wordFrequency);
}
}catch(EOFException e)
{
x = false;
}
private static void countWords(String word)
{
if (wordFrequency.containsKey(word))
{
Integer count = wordFrequency.get(word);
count++;
wordFrequency.put(word, count);
} else {
wordFrequency.put(word, 1);
}
}
public static void main (String args[])
{
CharacterReader cr = new SimpleCharacterReader();
findResult(cr);
}
출력 : [\t 그것은, 1} {\t 그것은 1 =였다 = 1} {\t 그것은 = 1은 = 1이었다 = 1} {\t = 1, 최고 = 1, = 1, was = 1] – shaz
문자열을 반환하는 위의 메서드가 표시되지 않습니다. 명확히하십시오. –
이것은 잘 문서화 된 주제이므로 검색 기능을 사용하십시오. –