在PL / SQL中计算字符串中字符和单词的数量
我们有一个任意长度的字符串,并且任务是使用 PL/SQL 计算字符串中字符和单词的数量。
PL/SQL 是 SQL 和编程语言的过程化特征的结合。它是由 Oracle Corporation 在 90年代初开发的,旨在增强 SQL 的功能。PL/SQL 是嵌入在 Oracle 数据库中的三种关键编程语言之一,另外两种是 SQL 本身和 Java。
在 PL/SQL 块中,我们有 DECLAR 块,用于声明编程中使用的变量,还有 BEGIN 块,在其中编写给定问题的逻辑,
阅读更多:MySQL 教程
例如
输入 − string str = “Tutorials Point”
输出 − 字符数是:15
单词数是:2
解释:在给定的字符串中,我们一共有 2 个单词,因此单词数为 2,在这些单词中我们有14个字符,另外一个是给定字符串中的一个空格。
输入 − string str = “诚实是最好的策略”
输出 − 字符数是:26
单词数是:5
解释 - 在给定字符串中,我们一共有 5 个单词,因此单词数为 5,在这些单词中我们有24个字符,另外四个是给定字符串中的 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('字符数是:'
||nchars);
dbms_output.Put_line('单词数是: '
||nwords);
END;
输出
如果我们执行上面的代码,将生成以下输出 –
字符数是:15
单词数是:2