국비교육/국비교육 복습
day19_api.util.collection3_Test03 : Map 활용 - 검색엔진 검색어 수집기 (★)
Luver Duck
2022. 8. 21. 14:10
(Q) 검색엔진 검색어 수집기 만들기
검색엔진은 사용자가 입력한 정보를 수집하도록 설계되어 있습니다.
이를 토대로 예측을 한다던가 다양한 방법으로 활용을 합니다. 빈도만 측정하려고 할 때,
사용자에게 지속적으로 검색어를 입력받고 이를 카운팅하는 프로그램을 구현
주의사항
- 대문자 소문자를 무시하도록 구현하세요
- java와 j a v a는 같은 단어로 취급되도록 처리
메인 메소드
package day19_api.util.collection3;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
// 검색어와 해당 검색어의 빈도를 저장하는 Map 생성
Map<String, Integer> data = new HashMap<>();
// Scanner 생성
Scanner sc = new Scanner(System.in);
// 반복문
while(true) {
// 검색어 입력
System.out.print("검색어 입력 : ");
String input = sc.nextLine();
// 검색어를 대문자로 변환 (대소문자 구분 없애기)
input = input.toUpperCase(); // 대문자로 변환
input = input.trim(); // 좌우 불필요한 여백 제거
input = input.replace(" ",""); // 공백 제거
// 종료 판정
if(input.equals("종료")) {
break;
}
// 판정
if(data.containsKey(input)) {
data.put(input, data.get(input) + 1);
System.out.println("[" + input + "] " + "검색이 완료되었습니다. "
+ "현재 검색횟수 [" + data.get(input) + "]");
}
else {
data.put(input, 1);
System.out.println("[" + input + "] " + "검색이 완료되었습니다. "
+ "현재 검색횟수 [" + data.get(input) + "]");
}
}
// 출력
System.out.println("검색 프로그램을 종료합니다.");
sc.close();
}
}
- Map의 메소드 일부
참조변수.clear() | Map의 모든 요소를 비움 | void |
참조변수.get(Object key) | Map의 해당 key의 value를 반환 | V |
참조변수.isEmpty() | Map에 요소가 있는지 여부 | boolean |
참조변수.put(K key, V value) | Map에 해당 key와 value를 추가 | V |
참조변수.remove(Object key) | Map의 해당 key의 value 제거 | V |
참조변수.size() | 요소가 들어있는 Map의 크기 반환 | int |
- String 변환 메소드
참조변수.toUpperCase() | 문자열을 대문자로 변경 | String |
참조변수.trim() | 문자열 좌우 불필요한 공백 제거 | String |
참조변수.replace(char oldChar, char newChar) | 해당 문자열을 다른 문자열로 변환 | String |
*** 참조변수.replace(" ", "") : 문자열 내 띄어쓰기를 전부 붙여쓰기하여 공백을 제거할 수 있다