국비교육/국비교육 복습

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(" ", "") : 문자열 내 띄어쓰기를 전부 붙여쓰기하여 공백을 제거할 수 있다