ABAP SHIFT-字符串移位 和 CONDENSE去除空格

SHIFT-字符串移位 和 CONDENSE去除空格

SHIFT BY n PLACES RIGHT/LEFT

*&---------------------------------------------------------------------*
*& Report Z_TEST_SHIFT_LHY
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_test_shift_lhy.

DATA: lv_str1 TYPE string,
      lv_str2 TYPE string,
      lv_str3 TYPE string.

lv_str1 = 'ABC123'.
lv_str2 = 'DEF456'.
lv_str3 = 'GHI789'.
WRITE:/'lv_str1:',lv_str1.
SHIFT lv_str1.  "向左移动一位

WRITE:/'lv_str1向左移动一位:',lv_str1.
SKIP 1.

WRITE:/'lv_str2:',lv_str2.  "输出BC123
SHIFT lv_str2 BY 2 PLACES RIGHT.  "向右移动两位

WRITE:/'lv_str2 向右移动两位:',lv_str2. "输出:  DEF456
SKIP 1.

WRITE:/'lv_str3:',lv_str3.
SHIFT lv_str3 by 3 PLACES LEFT. "向左移动三位
WRITE:/'lv_str3 向左移动三位:',lv_str3. "输出789

运行结果

在这里插入图片描述

SHIFT … UP TO …

"SHIFT c UP TO c1. 表示指定字符串c从子串c1进行位移,执行结果返回系统参数SY-SUBRC,执行成功返回0,不匹配则返回4
SHIFT lv_str4 UP TO lv_sub1.
WRITE:/'lv_str4 = ',lv_str4.
WRITE:/'SY-SUBRC',sy-subrc. "输出0

SHIFT lv_str5 UP TO lv_sub2.
WRITE:/'lv_str5 = ',lv_str5.
WRITE:/'SY-SUBRC',sy-subrc. "输出4

运行结果

第一个已经移动成功,第二个没有移动成功:
在这里插入图片描述

其他的-变量后面加括号和数字

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

SHIFT c LEFT/RIGHT DELETING

  • 移除字符串c左边的子字符串c1
    SHIFT c LEFT DELETING LEADING c1.

  • 移除字符串c右边的子字符串c1
    SHIFT c RIGHT DELETING TRAILING c1.
    在这里插入图片描述

DATA: lv_s1 TYPE string,
      lv_s2 TYPE string,
      lv_su1(3) TYPE c VALUE 'ABC',
      lv_su2(3) TYPE c VALUE 'EFG'.
lv_s1 = 'ABCDEFG'.
SHIFT lv_s1 BY 3 PLACES RIGHT.
WRITE:/'lv_s1:' ,lv_s1.

"删除空格
SHIFT lv_s1 LEFT DELETING LEADING space.
WRITE:/'lv_s1:',lv_s1.

"删除前面的ABC
SHIFT lv_s1 LEFT DELETING LEADING lv_su1.
WRITE:/'lv_s1:',lv_s1.

SHIFT lv_s1 RIGHT DELETING TRAILING lv_su2.
WRITE:/'lv_s1:',lv_s1.

运行结果

在这里插入图片描述
向右移动的时候,左侧会用空格补位

SHIFT 去除0

示例程序1

DATA: lv_s1 TYPE string,
      lv_s2 TYPE string,
      lv_su1(3) TYPE c VALUE 'ABC',
      lv_su2(3) TYPE c VALUE 'EFG'.
lv_s2 =  '000000012345'.
WRITE:/'原来的lv_s2:' ,lv_s2.
SHIFT lv_s2 LEFT DELETING LEADING '0'.

WRITE:/'lv_s2删除前面的0之后:' ,lv_s2.

运行结果

在这里插入图片描述

示例程序2

DATA: lv_s1 TYPE string,
      lv_s2 TYPE string,
      lv_su1(3) TYPE c VALUE 'ABC',
      lv_su2(3) TYPE c VALUE 'EFG'.
lv_s1 = 'ABCDEFG'.
lv_s2 =  '1234500000'.

WRITE:/'原来的lv_s2:' ,lv_s2.
"SHIFT lv_s2 LEFT DELETING LEADING '0'.

"WRITE:/'lv_s2删除前面的0之后:' ,lv_s2.
SHIFT lv_s2 RIGHT DELETING TRAILING '0'.
WRITE :/'lv_s2 删除后面的0之后:' ,lv_s2.

运行结果

如果是向右移动,去掉没用的小数位的0,向右移动,看不到0为止,左边会填充空格
在这里插入图片描述

CONDENSE

CONDENSE是可以去除空格的

示例程序

DATA: lv_s1 TYPE string,
      lv_s2 TYPE string,
      lv_su1(3) TYPE c VALUE 'ABC',
      lv_su2(3) TYPE c VALUE 'EFG'.
lv_s1 = 'ABCDEFG'.
lv_s2 =  '1234500000'.
WRITE:/'原来的lv_s2:' ,lv_s2.
"SHIFT lv_s2 LEFT DELETING LEADING '0'.

"WRITE:/'lv_s2删除前面的0之后:' ,lv_s2.
SHIFT lv_s2 RIGHT DELETING TRAILING '0'.
WRITE :/'lv_s2 删除后面的0之后:' ,lv_s2.
CONDENSE lv_s2.
WRITE :/'lv_s2 删除空格之后:' ,lv_s2.

运行结果

在删除之前是: 12345
在这里插入图片描述

相关推荐

  1. SQL:TRIM()函数去除字符串头尾空格

    2024-04-05 18:16:01       37 阅读
  2. C++字符去除空格反转顺序输出

    2024-04-05 18:16:01       53 阅读
  3. 最优字符串分隔符:零宽度空格字符

    2024-04-05 18:16:01       47 阅读
  4. c++_文件解析_读取_每行用字符分割_去除两头空格

    2024-04-05 18:16:01       24 阅读
  5. 去除Bash 变量中的空白字符 —— 筑梦之路

    2024-04-05 18:16:01       61 阅读
  6. 【leetcode】向字符串添加空格

    2024-04-05 18:16:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 18:16:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 18:16:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 18:16:01       82 阅读
  4. Python语言-面向对象

    2024-04-05 18:16:01       91 阅读

热门阅读

  1. tcp服务端,时刻在线

    2024-04-05 18:16:01       36 阅读
  2. ubuntu 安装配置samba服务器完整教程

    2024-04-05 18:16:01       38 阅读
  3. C 结构体

    2024-04-05 18:16:01       25 阅读
  4. 1.Swift基础控件:TableView列表

    2024-04-05 18:16:01       36 阅读
  5. Python数据分析与挖掘

    2024-04-05 18:16:01       41 阅读
  6. Linux C++ 019-多态

    2024-04-05 18:16:01       29 阅读
  7. 在国企特定的环境中,如何激励低效能员工?

    2024-04-05 18:16:01       35 阅读
  8. 梦想编码:0基础解锁IT世界的无限可能

    2024-04-05 18:16:01       37 阅读
  9. 密码学基础古典密码

    2024-04-05 18:16:01       37 阅读