ABAP字符串系列操作
字符串移位
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为0,sy-fdpos存在开始位置;若找不到sy-subrc为4,sy-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字符串系列操作相关推荐
- openresty开发系列18--lua的字符串string操作
openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s) 接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串. prin ...
- ABAP 字符串操作
1).SHIFT:截断字符串 SHIFT {c} [BY {n} PLACES] [{mode}].: 作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变 ...
- 【字符串系列】字符串匹配中的位并行算法
[字符串系列]字符串匹配中的位并行算法 最近一段时间看了一点"柔性字符串匹配", 发现位并行算法在字符串匹配这个领域还是很有用的, 下面抒发一下鄙见. 首先, 字符串位并行算法在a ...
- C语言之字符串探究(三):字符串库函数操作——strlen、strcat、strcpy、strcmp
相关博文:C++之char和string字符串类探究 相关博文:C语言之数组探究(一):定义.大小.初始化.访问和三要素 相关博文:C语言之字符串探究(一):字符串与字符数组 相关博文:C语言之字符串 ...
- C语言之字符串探究(二):字符串原生操作——strlen、strcat、strcpy、strcmp自实现
相关博文:C++之char和string字符串类探究 相关博文:C语言之数组探究(一):定义.大小.初始化.访问和三要素 相关博文:C语言之字符串探究(一):字符串与字符数组 相关博文:C语言之字符串 ...
- ABAP 开发系列(08): SAP Open SQL
在学习 ABAP WorkBench时了解到SAP 的三层架构: – 表现层(Presentation),应用层(Application),数据层(Database) Open SQL就发生在 App ...
- Python 字符串系列三字符串的拼接拆分和判断【简单易懂,代码可以直接运行,强烈推荐】
Python 字符串系列三字符串的拼接拆分和判断[简单易懂,代码可以直接运行,强烈推荐] ''' 字符串的拼接和拆分 #拆分和拼接 在''中\是转义字符,只有\才表示一个 ''' #以文件路径为例 p ...
- 学习素材之USART篇——通过使用STM32与ESP8266(esp-01s)连接阿里云系列操作来了解USART协议和寄存器操作
内容 通过使用STM32与ESP8266(esp-01s)连接阿里云系列操作来了解USART协议和寄存器操作 目录 USART详解 一.串口通讯协议简介 串口通讯的物理层 串口通讯的协议层 二.STM ...
- 连接mysql数据库字符串_MySQL数据库中怎么将字符串连接操作
MySQL数据库中怎么将字符串连接操作 发布时间:2020-11-30 09:54:14 来源:亿速云 阅读:68 作者:小新 小编给大家分享一下MySQL数据库中怎么将字符串连接操作,相信大部分人都 ...
最新文章
- java正则表达式课程_通过此免费课程学习正则表达式
- 3ds max 变形器使用
- 【Scratch】青少年蓝桥杯_每日一题_4.01_踢足球
- 无障碍开发(四)之ARIA aria-***状态值
- 2019年湘潭大学程序设计竞赛(重现赛)补题:H.Chat(分组背包)
- 非985,计算机专业的大学生该如何自学编程?
- 乌班图安装mysql 目录_Ubuntu 安装mysql 自定义数据存储目录
- 在laravel中,使用DB查询数据库后,返回的对象转为数组
- @Autowired 作用范围
- make install到指定安装目录
- android pdf阅读开发
- HTML网页设计结课作业——19张精美网页!
- [4G5G专题-22]:架构-3GPP组织以及3GPP标准各个版本的演进路线
- conda安装hanlp报错“找不到JAVA,请安装JAVA8”
- java中解决脏读_JAVA数据脏读
- 短网址还原的Bookmarklet
- 线程池及其原理和使用
- 广义表的表头和表尾是什么?
- 【Unity 2017.3 制作安卓2D单机手游】2.这就开始做
- SCORM课程对接线上课程学习平台