[Oracle]要求编写程序,输入n个字符,统计其中英文字母、数字字符和其他字符的个数。输入:aZ&09Az 输出:letter = 4, digit = 2, other = 1

要求编写程序,输入n个字符,统计其中英文字母、数字字符和其他字符的个数。

输入:aZ&09Az

输出:letter = 4, digit = 2, other = 1

代码如下: 

set serveroutput on
declare 
 str varchar2(100);
 len number;
 letter_cnt number:=0;
 digit_cnt number:=0;
 other_cnt number:=0;
begin
 str:='&input_str';
 len:=length(str);
for i in 1..len loop
  if(ascii(substr(str,i,1))>=65 and ascii(substr(str,i,1))<=90) or (ascii(substr(str,i,1))>=97 and ascii(substr(str,i,1))<=122) then  -- 判断是否为英文字母
  letter_cnt:=letter_cnt+1;
  elsif substr(str,i,1) in ('0','1','2','3','4','5','6','7','8','9') then  -- 判断是否为数字字符
  digit_cnt:=digit_cnt+1;
  else  -- 其他字符
  other_cnt:=other_cnt+1;
  end if;
end loop;
dbms_output.put_line('letter='||letter_cnt||',digit='||digit_cnt||',other='||other_cnt);
end;
/

[Oracle]要求编写程序,输入n个字符,统计其中英文字母、数字字符和其他字符的个数。输入:aZ&09Az 输出:letter = 4, digit = 2, other = 1_第1张图片

tips:

1.注意if和end if配对

2.这段代码使用了 ASCII 函数来判断一个字符的 ASCII 值是否在指定范围内,从而判断该字符是否为英文字母。

单词:

letter n.信;字母

digit  n.数字;(从 0 到 9 的任何一个)数位;手指;拇指;脚趾

你可能感兴趣的:(oracle,数据库,sql)