본문 바로가기
JAVAEx/API

API 문자열 찾기 예제

by 요리하다그만둠 2022. 5. 27.

 

package com.javateam.jse;

import org.apache.commons.lang3.StringUtils;

public class SearchTestAns2 {

	public static void main(String[] args) {
		
		String sentence = "클라우드 컴퓨팅(영어: cloud computing)은 "
				+ "클라우드(인터넷)을 통해 가상화된 컴퓨터의 시스템리소스(IT 리소스)를 "
				+ "요구하는 즉시 제공(on-demand availability)하는 것이다. "
				+ "인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드
               			    (인터넷)에 "
				+ "연결된 다른 컴퓨터로 처리하는 기술을 의미한다. 공유 컴퓨터 처리 자원과 데이터를 "
				+ "컴퓨터와 다른 장치들에 요청 시 제공해준다. 구성 가능한 컴퓨팅 자원
               			 (예: 컴퓨터 네트워크, "
				+ "데이터 베이스, 서버, 스토리지, 애플리케이션, 서비스, 인텔리전스)에 대해 "
				+ "어디서나 접근할 수 있는, 주문형 접근(on-demand availability "
				+ "of computer system resources)을 가능케하는 모델이며 "
				+ "최소한의 관리 노력으로 빠르게 예비 및 릴리스를 가능케 한다.
              			  클라우드 컴퓨팅과 "
				+ "스토리지 솔루션들은 사용자와 기업들에게 개인 소유나 타사 데이터 센터의 
               			 데이터를 저장, "
				+ "가공하는 다양한 기능을 제공하며 도시를 거쳐 
             			 전 세계로까지 위치해 있을 수 있다. "
				+ "클라우드 컴퓨팅은 전기망을 통한 전력망과 비슷한 
             			   일관성 및 규모의 경제를 달성하기 위해 "
				+ "자원의 공유에 의존한다.";
		
		System.out.println(StringUtils.countMatches(sentence, "클라우드"));
	}

}

조건

 

/** * 검색할 대상 문장에서 특정 검색어의 개수를 반환하는 메서드

* @param target 검색할 문장

* @param searchWord 검색어

* @return 검색어 개수 */

// 카운터 변수를 작성하여 초기화합니다
// 검색의 대상이 되는 문장(target)을 한 단어씩 "분리"합니다.
// 반복문(for)을 활용하여 단어 속에 검색어가 "포함"되어 있는지 
// 여부를 점검하여 있으면 카운터를 증가시킵니다.
// 전체적으로 누적된 카운터 변수를 리턴(반환)합니다.

package ClassCastException;

public class SearchTest {

	/**
	 * 검색할 대상 문장에서 특정 검색어의 개수를 반환하는 메서드
	 * 
	 * @param target     검색할 문장
	 * @param searchWord 검색어
	 * @return 검색어 개수
	 */
	public static int getCountBySearchWord(String target, String searchWord) {

		int count = 0;
		// 카운터 변수를 작성하여 초기화합니다
		String words[] = target.split(" ");
		// .split 문자열을 분활 해주는 메서드

		// 검색의 대상이 되는 문장(target)을 한 단어씩 "분리"합니다.
		for (int i = 0; i < words.length; i++) {
			// 반복문(for)을 활용하여 단어 속에 검색어가 "포함"되어 있는지
			if (words[i].trim().contains(searchWord) == true)
				// .trim() 공백을 지우는 메서드
				// .contains
				// 이 문자열 내에서 지정한 하위 문자열이 발생하는지를 나타내는 값을 반환합니다.
				count++;
			// 여부를 점검하여 있으면 카운터를 증가시킵니다.
		}
		// 전체적으로 누적된 카운터 변수를 리턴(반환)합니다.
		return count;
	}

	public static void main(String[] args) {

		String sentence = 
        "클라우드 컴퓨팅(영어: cloud computing)은 " 
        + "클라우드(인터넷)을 통해 가상화된 컴퓨터의 시스템리소스(IT 리소스)를 "
				+ "요구하는 즉시 제공(on-demand availability)하는 것이다. " 
                + "인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 "
				+ "연결된 다른 컴퓨터로 처리하는 기술을 의미한다. 공유 컴퓨터 처리 자원과 데이터를 "
				+ "컴퓨터와 다른 장치들에 요청 시 제공해준다. 구성 가능한 컴퓨팅 자원
                		(예: 컴퓨터 네트워크, " 
                + "데이터 베이스, 서버, 스토리지, 애플리케이션, 서비스, 인텔리전스)에 대해 "
				+ "어디서나 접근할 수 있는, 주문형 접근(on-demand availability "
                + "of computer system resources)을 가능케하는 모델이며 "
				+ "최소한의 관리 노력으로 빠르게 예비 및 릴리스를 가능케 한다. 클라우드 컴퓨팅과 " 
                + "스토리지 솔루션들은 사용자와 기업들에게 개인 소유나 타사 데이터 센터의 데이터를 저장,"
				+ "가공하는 다양한 기능을 제공하며 도시를 거쳐 전 세계로까지 위치해 있을 수 있다. " 
                + "클라우드 컴퓨팅은 전기망을 통한 전력망과 비슷한 일관성 및 규모의 경제를 달성하기 위해 "
				+ "자원의 공유에 의존한다.";

		// System.out.println(getCountBySearchWord(sentence, "클라우드"));
		System.out.println(getCountBySearchWord(sentence, "컴퓨팅"));

	} //

}

값 출력