Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

PL/SQL로 문자열의 문자 수와 단어 수 계산하기

임의의 길이를 가진 문자열이 주어졌을 때, PL/SQL을 사용하여 해당 문자열에 포함된 문자 수단어 수를 계산하는 방법을 알아보겠습니다.

PL/SQL은 SQL과 프로그래밍 언어의 절차적 기능을 결합한 언어입니다. 1990년대 초반 오라클(Oracle) 사가 SQL의 기능을 확장하기 위해 개발했으며, SQL과 Java와 함께 오라클 데이터베이스에 내장된 세 가지 핵심 프로그래밍 언어 중 하나입니다.

PL/SQL 블록은 크게 두 부분으로 구성됩니다. 프로그래밍에 사용할 변수를 선언하는 DECLARE 블록과, 주어진 문제에 대한 실제 로직을 작성하는 BEGIN 블록입니다.

예시

입력 − string str = “Tutorials Point”
출력 − count of characters is: 15
      Count of words are: 2

설명: 주어진 문자열에는 총 2개의 단어가 있으므로 단어 수는 2입니다. 이 단어들을 이루는 문자는 14개이며, 나머지 1개는 문자열 안의 공백 하나입니다.

입력 − string str = “Honesty is the best policy”
출력 − count of characters is: 26
      Count of words are: 5

설명: 주어진 문자열에는 총 5개의 단어가 있으므로 단어 수는 5입니다. 이 단어들을 이루는 문자는 24개이며, 나머지 4개는 문자열 안의 공백 네 개입니다.

프로그램의 접근 방식

  • 임의의 길이를 가진 문자열을 입력받아 변수(예: str)에 저장합니다.
  • length() 함수를 사용하여 문자열의 길이를 계산합니다. 이 함수는 공백을 포함한 전체 문자 수를 정수 값으로 반환합니다.
  • 반복문을 사용하여 문자열 str의 첫 번째 문자부터 마지막 문자까지 순회합니다.
  • substr() 함수를 사용하여 현재 위치의 문자를 하나씩 추출하고, 추출된 문자가 공백인 경우 단어 수를 증가시킵니다.
  • 문자열의 길이만큼 반복문이 실행되는 동안 매 반복마다 문자 수 카운트를 1씩 증가시킵니다.
  • 최종적으로 문자열의 문자 수와 단어 수를 출력합니다.

예제 코드

DECLARE
      str VARCHAR2(40) := 'Tutorials Point';
      nchars NUMBER(4) := 0;
      nwords NUMBER(4) := 1;
      s CHAR;
BEGIN
    FOR i IN 1..Length(str) LOOP
      s := Substr(str, i, 1);
      nchars:= nchars+ 1;
      IF s = ' ' THEN
      nwords := nwords + 1;
      END IF;
  END LOOP;
  dbms_output.Put_line('count of characters is:'
      ||nchars);

  dbms_output.Put_line('Count of words are: '
      ||nwords);
END;

코드 설명

위 코드에서 변수 nchars는 문자 수를, nwords는 단어 수를 저장합니다. 단어 수의 초기값을 0이 아닌 1로 설정한 이유는, 일반적으로 문장의 단어 수는 공백의 개수보다 하나 많기 때문입니다. 반복문 안에서 substr() 함수로 한 글자씩 확인하며 공백을 만날 때마다 단어 수를 증가시키는 방식으로 동작합니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

count of characters is: 15
Count of words are: 2