SAP ABAP 字符串

字符串(String),是一个字符序列,在 ABAP 编程中被广泛使用。

我们使用数据类型 C 变量来保存字母数字字符,最少 1 个字符,最多 65535 个字符。

默认情况下,将向左对齐。


创建字符串

下面的声明和初始化创建了一个由单词 'Hello' 组成的字符串。字符串的大小正好是单词 'Hello' 中的字符数。

  1. Data my_Char(5) VALUE 'Hello'.

以下程序是创建字符串的实例:

  1. REPORT YT_SEP_15.
  2. DATA my_Char(5) VALUE 'Hello'.
  3. Write my_Char.

结果如下:

  1. Hello

字符串长度

获得字符串的长度,我们可以使用 STRLEN 语句。

STRLEN() 函数的作用是:返回字符串中包含的字符数。

实例
  1. REPORT YT_SEP_15.
  2. DATA: title_1(10) VALUE 'cankaoshouce',
  3. length_1 TYPE I.
  4. length_1 = STRLEN( title_1 ).
  5. Write: / 'The Length of the Title is:', length_1.

结果如下:

  1. The Length of the Title is: 12

ABAP 支持大量操作字符串的语句:

编号语句 & 用途
1

CONCATENATE

两个字符串连接形成第三个字符串。

2

CONDENSE

此语句删除空格字符。

3

STRLEN

用于查找字段的长度。

4

REPLACE

用于替换字符。

5

SEARCH

在字符串中运行搜索。

6

SHIFT

用于向左或向右移动字符串的内容。

7

SPLIT

用于将字段内容拆分为两个或多个字段。

下面的实例使用了上述一些语句:

实例
  1. REPORT YT_SEP_15.
  2. DATA: title_1(10) VALUE 'cankao',
  3. title_2(10) VALUE 'shouce',
  4. spaced_title(30) VALUE 'cankao shouce Limited',
  5. sep,
  6. dest1(30),
  7. dest2(30).
  8. CONCATENATE title_1 title_2 INTO dest1.
  9. Write: / 'Concatenation:', dest1.
  10. CONCATENATE title_1 title_2 INTO dest2 SEPARATED BY sep.
  11. Write: / 'Concatenation with Space:', dest2.
  12. CONDENSE spaced_title.
  13. Write: / 'Condense with Gaps:', spaced_title.
  14. CONDENSE spaced_title NO-GAPS.
  15. Write: / 'Condense with No Gaps:', spaced_title.

结果如下:

  1. Concatenation: cankaoshouce
  2. Concatenation with Space: cankao shouce
  3. Condense with Gaps: cankaoshouce Limited
  4. Condense with No Gaps: cankaoshouceLimited

注意:

  • Concatenation 情况下, 'sep' 会在字段之间插入空格。
  • CONDENSE 语句删除字段之间的空格,但会留下 1 个字符的空格。
  • 'NO-GAPS' 是可选的。使用之后 CONDENSE 会删除所有空格。