[ java ] JavaFestival9 - Question2 - 영어문장을 입력 받아 단어 빈도수를 출력하시오.
페이지 정보
작성자 웹지기 댓글 0건 조회 3,951회 작성일 20-12-19 17:30본문
Question2
- 영어문장을 입력 받아 단어 빈도수를 출력하시오.
import java.util.ArrayList;
import java.util.Scanner;
public class Question2 {
public static void main(String[] args) {
//영어문장을 입력 받아 단어 빈도수를 출력하시오
Scanner sc = new Scanner(System.in);
//System.out.print("문장을 입력 : ");
String str = sc.next();
//String str = "I think about that day I left him at a Greyhound station West of Santa Fe";
String[] str2 = str.split(" ");
ArrayList<String> str3 = new ArrayList<String>();
ArrayList<String> cnt = new ArrayList<String>();
int num = 0;
//문장을 나눠서 각 단어들이 몇번인지 확인
for(int i=0; i<str2.length; i++) {
str3.add(str2[i]);
for(int j=i+1; j<str2.length; j++) {
if(str2[i].equals(str2[j])) {
num++;
}
}
cnt.add(String.valueOf(num));
}
/*
for(int i=0; i<str3.size(); i++) {
System.out.println(str3.get(i)+" : "+cnt.get(i));
}
*/
System.out.println();
int num2 = 0;
//중복단어가 있는지 확인
for(int i=0; i<str3.size(); i++) {
num2=Integer.parseInt(cnt.get(i));
for(int j=(i+1); j<str3.size(); j++) {
if(str3.get(i).equals(str3.get(j))) {
str3.remove(i);
num2++;
cnt.add(j-1, String.valueOf(num2));
}
}
}
System.out.println(str);
for(int i=0; i<str3.size(); i++) {
System.out.println(str3.get(i)+" : "+cnt.get(i));
}
}
}
결과
I think about that day I left him at a Greyhound station West of Santa Fe
think : 1
about : 1
that : 1
day : 1
I : 2
left : 1
him : 1
at : 1
a : 1
Greyhound : 1
station : 1
West : 1
of : 1
Santa : 1
Fe : 1
댓글목록
등록된 댓글이 없습니다.