在 PL/SQL 中计算字符串中的字符和单词数

pl/sqlmysqldatabase

我们给定一个任意长度的字符串,任务是使用 PL/SQL 计算字符串中的字符和单词数。

PL/SQL 是 SQL 与编程语言的过程特性的结合。它由 Oracle Corporation 于 90 年代初开发,以增强 SQL 的功能。PL/SQL 是嵌入在 Oracle 数据库中的三种关键编程语言之一,另外两种是 SQL 本身和 Java。

在 PL/SQL 块中,我们有 DECLARE 块,用于声明编程中使用的变量,我们有 BEGIN 块,用于编写给定问题的逻辑,

例如

Input − string str = “Tutorials Point”
Output− count of characters is: 15
      Count of words are: 2

解释:在给定的字符串中,我们总共有 2 个单词,因此字数为 2,并且这些单词中有 14 个字符,加上一个字符代表给定字符串中的一个空格。

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

解释 −在给定的字符串中,我们总共有 5 个单词,因此字数为 5,而这些单词中有 24 个字符,另外 4 个字符表示给定字符串中的 4 个空格。

以下程序中使用的方法如下

  • 输入任意长度的字符串并将其存储在变量 str 中

  • 使用 length() 函数计算字符串的长度,该函数将根据字符串中的字母数(包括空格)返回一个整数值。

  • 从 i 开始循环到 0,直到字符串 str 的长度

  • 使用函数 substr(),它将返回字符串中的子字符串数,即字符串中的单词数

  • 并且,在循环的每次迭代中增加字符数,直到字符串的长度字符串。

  • 打印字符串中的字符和单词数。

示例

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;

输出

如果我们运行上述代码,它将生成以下输出 −

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

相关文章