COBOL-字符串处理

本文概述

  • 检查
  • String
  • 解锁
【COBOL-字符串处理】字符串处理语句在COBOL中用于执行字符串操作。 COBOL提供了三种类型的用于字符串处理的语句:
  • 检查
  • String
  • 解锁
检查 检查动词替换或计算字符串中的一个字符或一组字符。在数字, 字母或字母数字值上, 我们可以执行字符串操作。检查操作是从左到右进行的。
Inspect提供了两个选项, 如下所示:
合计?
计数用于计算字符串字符。
语法如下:
INSPECT input-stringTALLYING output-count FOR ALL CHARACTERS

这里, 输入字符串和输出字符串是参数。输入字符串是要对其字符进行计数的字符串。而输出字符串是保存字符数的数据项。
例子:
让我们看一下Tallying选项的示例:
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION.WORKING-STORAGE SECTION.01 WS-CNT1 PIC 9(2) VALUE 0.01 WS-CNT2 PIC 9(2) VALUE 0.01 WS-STRING PIC X(15) VALUE 'ABCDACDADEAAAFF'.PROCEDURE DIVISION.INSPECT WS-STRING TALLYING WS-CNT1 FOR ALL 'F'.DISPLAY "WS-CNT1 : " WS-CNT1.INSPECT WS-STRING TALLYING WS-CNT2 FOR ALL 'A'.DISPLAY "WS-CNT2 : " WS-CNT2.STOP RUN.

输出如下:
COBOL-字符串处理

文章图片
更换
替换选项将替换字符串字符。
语法如下:
INSPECT input-string REPLACING ALL char1 BY char2.

这里, input-string参数是字符串, 其字符将从char1替换为char2。
例子:
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION.WORKING-STORAGE SECTION.01 WS-STRING PIC X(15) VALUE 'ABCDBCDBDEBBBBF'.PROCEDURE DIVISION.DISPLAY "OLD STRING : "WS-STRING.INSPECT WS-STRING REPLACING ALL 'B' BY '$'.DISPLAY "NEW STRING : "WS-STRING.STOP RUN.

输出如下:
COBOL-字符串处理

文章图片
String 字符串动词用于将两个或多个字符串或文字的部分或全部内容连接到一个数据项中。在字符串动词中, ” DELIMITED BY” 子句是强制性的。
语法如下:
STRING ws-string1 DELIMITED BY SPACEws-string2 DELIMITED BY SIZEINTO ws-destination-stringWITH POINTER ws-countON OVERFLOW DISPLAY message1NOT ON OVERFLOW DISPLAY message2END-STRING.

这里, 使用的参数详细信息是:
  • ws-string1和ws-string2:这些是要串联的输入字符串。
  • ws-string:这是一个输出字符串。
  • ws-count:用于计算新的串联字符串的长度。
  • 带分隔符:用于指定字符串的结尾。
  • 指针和溢出:这些是可选的。
例子:
我们来看一个字符串动词的示例:
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION.WORKING-STORAGE SECTION.01 WS-STRING PIC A(30).01 WS-STR1 PIC A(15) VALUE 'Worldsrcmini'.01 WS-STR2 PIC A(7) VALUE 'Welcome'.01 WS-STR3 PIC A(7) VALUE 'To AND'.01 WS-COUNT PIC 99 VALUE 1.PROCEDURE DIVISION.STRING WS-STR2 DELIMITED BY SIZEWS-STR3 DELIMITED BY SPACEWS-STR1 DELIMITED BY SIZEINTO WS-STRING WITH POINTER WS-COUNTON OVERFLOW DISPLAY 'OVERFLOW!' END-STRING.DISPLAY 'WS-STRING : 'WS-STRING.DISPLAY 'WS-COUNT : 'WS-COUNT.STOP RUN.

输出如下:
COBOL-字符串处理

文章图片
解锁 UNSTRING动词将一个字符串分成几个子字符串。 unstring动词中必须使用’ DELIMITED BY’ 子句。
语法如下:
UNSTRING ws-string DELIMITED BY SPACEINTO ws-str1, ws-str2WITH POINTER ws-countON OVERFLOW DISPLAY messageNOT ON OVERFLOW DISPLAY messageEND-UNSTRING.

例子:
我们来看一个Unstring动词的示例:
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION.WORKING-STORAGE SECTION.01 WS-STRING PIC A(30) VALUE 'WELCOME TO srcmini'.01 WS-STR1 PIC A(7).01 WS-STR2 PIC A(2).01 WS-STR3 PIC A(15).01 WS-COUNT PIC 99 VALUE 1.PROCEDURE DIVISION.UNSTRING WS-STRING DELIMITED BY SPACEINTO WS-STR1, WS-STR2, WS-STR3END-UNSTRING.DISPLAY 'WS-STR1 : 'WS-STR1.DISPLAY 'WS-STR2 : 'WS-STR2.DISPLAY 'WS-STR3 : 'WS-STR3.STOP RUN.

输出如下:
COBOL-字符串处理

文章图片

    推荐阅读