字符串移位

shift <c> [by <n> places] [<modes>]

modes:1、空白,字符串向左移一位

​ 2、left,字符串向左移n位

​ 3、right,字符串向右移n位

指定字符串c从子串c1进行位移:

shift c up to c1

执行结果返回系统参数sy-subrc

执行成功,返回0不匹配,返回4

例子:

data:lv_string type string,lv_string1 type string.
lv_string1 = 'ABCDEFG'.
write:sy-uline.
write:/, 'lv_string1:', lv_string1.
shift lv_sting1 by 3 places left.  "字符串向左移动3位
write:/, 'lv_string1:', lv_string1.

移除

shift c left/right deletig leading/trailing c1. "left->leading;reght->trailing

例子:

DATA:lv_string  TYPE string,lv_string1 TYPE string,lv_string2 TYPE c VALUE 'ABC',lv_string3 TYPE c VALUE 'EFG'.lv_string1 = 'ABCDEFG'.WRITE:sy-uline.
WRITE:/, 'lv_string1:', lv_string1.SHIFT lv_sting1 LEFT DELETING LEADING space.  "删除字符串左边的空格
SHIFT lv_sting1 LEFT DELETING LEADING lv_string2.  "删除字符串前的ABCSHIFT lv_sting1 RIGHT DELETING TRAILING lv_string3.  "删除字符串后的EFG
WRITE:/, 'lv_string1:', lv_string1.
*主要用在SQL语句中

替换字符串

replace <string1> with <string2> into <c>.

将字符串中的以来取代

例子:

data:lv_string type string value 'ABC',lv_string1 type string,lv_string2 type c value '1234'.
lv_string1 = 'ABCDEFG'.
*将lv_string1里的‘ABC’替换为‘1234’
replace lv_string with lv_string2 into lv_string1.write:'lv_string1:',lv_string1.

字符串转换

translate <c> to upper/lower case.

将字符转为大写/小写

寻找字符串

从字符串f/表itab中搜索字符串g

search f/itab for g

…abbreviated

从指定字符串中/内表中按顺序/逐行搜索相匹配字符串,搜索单词第一个需与字符串中包含的单词第一个匹配

…starting at n1/line1

从字符串n1个字符/内表中具体某行开始搜索匹配字符串

…ending at n2/line2

搜索到字符串第n2个字符/最大范围到内表中具体某行

…and mark:

从指定字符串/内表中模糊搜索相匹配字符串

注意:

  • 会存到两个变数,sy-subrc和sy-fdpos:若找到则sy-subrc为0sy-fdpos存在开始位置;若找不到sy-subrc为4sy-fdpos为0
  • 对于一些特殊符号,如*、@、.等,需要在其两边加上句号作为修饰.

例子:

*在v_string1里找’1234‘
data:lv_string1 type string,lv_string2 type c value '1234'.
lv_string1 = 'ABCDEFG'.
search lv_string1 for lv_string2.
writh:'查找结果:',sy-subrc,sy-fdpos.

字符串的合并(常用)

将多个字符串合并成一个字符串,

CONCATENATE f1...fn INTO g [SEPARATED BY h]

SPARAED BY表示在连接字符串中加入分隔符号

例子:

DATA:one(10) VALUE 'hello',two(10) VALUE 'sap',result1(10),result2(10),l1 TYPE I,l2 TYPE I.CONCATENATE one two INTO result1 SEPARATED BY SPACE. "space空格分隔
CONCATENATE one two INTO result2.l1 = STRLEN( result1 ) + STRLEN( result2 ). "注意括号内空格write:/ 'result1:',result1,/'result2:',result2.
write:/"STRLEN=",l1.

拆分

将一个字符串拆分并复制给多个变量:

SPLIT f AT g INTO h1...hn.

将一个字符串拆分并分配给一个内表:

SPLIT f AT g INTO TABLE itab.

例子:

DATA:names(30) TYPE c VALUE 'hello,sap',names2 TYPE STRING,sone(10) TYPE c,stwo(10) TYPE c,delimiter(1) VALUE ','.TYPES:BEGIN OF itab_type,word(20),
END OF itab_type.
DATA myitab TYPE STANDARD TABLE OF itab_type WITH HEADER
LINE.SPLIT names AT delimiter INTO sone stwo.
SPLIT 'ONE,TWO,THREE,FOUR,FIVE,SIX' AT delimiter INTO TABLE myitab.write:/ 'sone:',sone,/'stwo:',stwo.LOOP AT myitab.WRITE myitab.
ENDLOOP.

去除字符串空格

CONDENSE c <NO-GAPS>
  • 字符串前置空格被删除
  • NO-GAPS–前置空格以及中间所有空格被删除

清除变量内容

CLEAR <f>
  • 清除变量内容
  • 常量不能被清空

例子:

DATA n TYPE i VALUE 100.
CLEAR n.
WRITE n.

ABAP字符串系列操作相关推荐

  1. openresty开发系列18--lua的字符串string操作

    openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s) 接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串. prin ...

  2. ABAP 字符串操作

    1).SHIFT:截断字符串 SHIFT {c} [BY {n} PLACES] [{mode}].: 作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变 ...

  3. 【字符串系列】字符串匹配中的位并行算法

    [字符串系列]字符串匹配中的位并行算法 最近一段时间看了一点"柔性字符串匹配", 发现位并行算法在字符串匹配这个领域还是很有用的, 下面抒发一下鄙见. 首先, 字符串位并行算法在a ...

  4. C语言之字符串探究(三):字符串库函数操作——strlen、strcat、strcpy、strcmp

    相关博文:C++之char和string字符串类探究 相关博文:C语言之数组探究(一):定义.大小.初始化.访问和三要素 相关博文:C语言之字符串探究(一):字符串与字符数组 相关博文:C语言之字符串 ...

  5. C语言之字符串探究(二):字符串原生操作——strlen、strcat、strcpy、strcmp自实现

    相关博文:C++之char和string字符串类探究 相关博文:C语言之数组探究(一):定义.大小.初始化.访问和三要素 相关博文:C语言之字符串探究(一):字符串与字符数组 相关博文:C语言之字符串 ...

  6. ABAP 开发系列(08): SAP Open SQL

    在学习 ABAP WorkBench时了解到SAP 的三层架构: – 表现层(Presentation),应用层(Application),数据层(Database) Open SQL就发生在 App ...

  7. Python 字符串系列三字符串的拼接拆分和判断【简单易懂,代码可以直接运行,强烈推荐】

    Python 字符串系列三字符串的拼接拆分和判断[简单易懂,代码可以直接运行,强烈推荐] ''' 字符串的拼接和拆分 #拆分和拼接 在''中\是转义字符,只有\才表示一个 ''' #以文件路径为例 p ...

  8. 学习素材之USART篇——通过使用STM32与ESP8266(esp-01s)连接阿里云系列操作来了解USART协议和寄存器操作

    内容 通过使用STM32与ESP8266(esp-01s)连接阿里云系列操作来了解USART协议和寄存器操作 目录 USART详解 一.串口通讯协议简介 串口通讯的物理层 串口通讯的协议层 二.STM ...

  9. 连接mysql数据库字符串_MySQL数据库中怎么将字符串连接操作

    MySQL数据库中怎么将字符串连接操作 发布时间:2020-11-30 09:54:14 来源:亿速云 阅读:68 作者:小新 小编给大家分享一下MySQL数据库中怎么将字符串连接操作,相信大部分人都 ...

最新文章

  1. java正则表达式课程_通过此免费课程学习正则表达式
  2. 3ds max 变形器使用
  3. 【Scratch】青少年蓝桥杯_每日一题_4.01_踢足球
  4. 无障碍开发(四)之ARIA aria-***状态值
  5. 2019年湘潭大学程序设计竞赛(重现赛)补题:H.Chat(分组背包)
  6. 非985,计算机专业的大学生该如何自学编程?
  7. 乌班图安装mysql 目录_Ubuntu 安装mysql 自定义数据存储目录
  8. 在laravel中,使用DB查询数据库后,返回的对象转为数组
  9. @Autowired 作用范围
  10. make install到指定安装目录
  11. android pdf阅读开发
  12. HTML网页设计结课作业——19张精美网页!
  13. [4G5G专题-22]:架构-3GPP组织以及3GPP标准各个版本的演进路线
  14. conda安装hanlp报错“找不到JAVA,请安装JAVA8”
  15. java中解决脏读_JAVA数据脏读
  16. 短网址还原的Bookmarklet
  17. 线程池及其原理和使用
  18. 广义表的表头和表尾是什么?
  19. 【Unity 2017.3 制作安卓2D单机手游】2.这就开始做
  20. SCORM课程对接线上课程学习平台

热门文章

  1. 2021华数杯C题总结
  2. 区块链技术下的数字藏品如何赋能实体商品
  3. 考试自动评分系统C语言改错,基于XML结构的C语言考试的自动评分系统.doc
  4. springboot中的线程池
  5. 软银在日本推物联网单车共享
  6. 谈谈MVC和MVVM
  7. 拿了6家银行信息岗offer的一些经验
  8. 【转载】路由器的原理与作用
  9. DDR4之地址空间、颗粒容量、page size计算
  10. 【系统分析师之路】第八章 系统测试与维护(章节重点)