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


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

PL/SQL 是 SQL 与编程语言过程功能的结合体。它由 Oracle 公司在 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 个字符,再加上四个空格。

下面程序中使用的方法如下:

  • 输入任意长度的字符串,并将其存储在一个变量中,例如 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

更新于:2020年5月15日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.