ABAP 字符串函数
CONCATENATE:合并字符串.
CONCATENATE f1 … fn INTO g [SEPARATED BY h].

1 * CONCATENATE合并字符串
2 DATA: c1(10) TYPE c VALUE 'Sum',
3 c2(3) TYPE c VALUE 'mer',
4 c3(5) TYPE c VALUE 'holi ',
5 c4(10) TYPE c VALUE 'day',
6 c5(30) TYPE c ,
7 sep(3) TYPE c VALUE ' - '.
8 CONCATENATE c1 c2 c3 c4 INTO c5.
9 WRITE c5.
10 CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep.
11 WRITE / c5.

--------------------------------------------------------
输出结果:
Summerholiday
Sum - mer - holi - day
--------------------------------------------------------
SPLIT: 字符串拆分.
SPLIT f AT g INTO h1 … hn.
SPLIT f AT g INTO TABLE itable.

1 * splitting strings
2 DATA: string10(60) TYPE c ,
3 p1(20) TYPE c VALUE '++++++++++++++++++++',
4 p2(20) TYPE c VALUE '++++++++++++++++++++',
5 p3(20) TYPE c VALUE '++++++++++++++++++++',
6 p4(20) TYPE c VALUE '++++++++++++++++++++',
7 del10(3) TYPE c VALUE '***'.
8 string10 = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'.
9 WRITE string10.
10 SPLIT string10 AT del10 INTO p1 p2 p3 p4.
11 WRITE / p1.
12 WRITE / p2.
13 WRITE / p3.
14 WRITE / p4.

--------------------------------------------------------
输出结果:
Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5
Part 1
Part 2
Part 3
Part 4 *** Part 5
--------------------------------------------------------
SHIFT:字符串整体或者字串进行转移.
如果SHIFT 操作的对象是 C类型, 则所有字节都会向前移动一位,最后一位用空格代替;
如果SHIFT操作的对象是String类型,则所有字符都会向前移动一位,最后一位删除;
SHIFT c <LEFT/RIGHT/CIRCULAR>.
SHIFT c BY n PLACES.
SHIFT c UP TO c1.

1 * SHIFT c BY n PLACES 用法.
2 DATA: t1(10) TYPE c VALUE 'abcdefghij',
3 string1 LIKE t1.
4
5 string1 = t1.
6 WRITE string1.
7 SHIFT string1.
8 WRITE / string1.
9 string1 = t1.
10 SHIFT string1 BY 3 PLACES LEFT.
11 WRITE / string1.
12 string1 = t1.
13 SHIFT string1 BY 3 PLACES RIGHT.
14 WRITE / string1.
15 string1 = t1.
16 SHIFT string1 BY 3 PLACES CIRCULAR.
17 WRITE / string1.

--------------------------------------------------------
输出结果:
abcdefghij “string1
bcdefghij
defghij
abcdefg
defghijabc
--------------------------------------------------------

1 * SHIFT c UP TO c1
2 DATA: t2(10) TYPE c VALUE 'abcdefghij',
3 string2 LIKE t2,
4 str2(2) TYPE c VALUE 'ef'.
5
6 string2 = t2.
7 WRITE string2.
8 SHIFT string2 UP TO str2.
9 WRITE / string2.
10 string2 = t2.
11 SHIFT string2 UP TO str2 LEFT.
12 WRITE / string2.
13 string2 = t2.
14 SHIFT string2 UP TO str2 RIGHT.
15 WRITE / string2.
16 string2 = t2.
17 SHIFT string2 UP TO str2 CIRCULAR.
18 WRITE / string2.

--------------------------------------------------------
输出结果:
abcdefghij
efghij
efghij
abcdef
efghijabcd
--------------------------------------------------------
移除字符串左/右边的子字符串:
SHIFT c LEFT DELETEING LEADING c1.
SHIFT c RIGHT DELETEING TRAILING c1.

1 * SHIFT c LEFT/RIGHT DELETEING LEADING c1
2 DATA: t3(14) TYPE c VALUE ' abcdefghij',
3 string3 LIKE t3,
4 str3(6) TYPE c VALUE 'ghijkl'.
5
6 string3 = t3.
7 WRITE string3.
8 SHIFT string3 LEFT DELETING LEADING space.
9 WRITE / string3.
10 string3 = t3.
11 SHIFT string3 RIGHT DELETING TRAILING str3.
12 WRITE / string3.

--------------------------------------------------------
输出结果:
abcdefghij
abcdefghij
abcdef
--------------------------------------------------------
CONDENSE:重新整合分配字符串.
CONDENSE c <NO-GAPS>.

1 * condensing strings
2 DATA: string9(25) TYPE c VALUE ' one two three four',
3 len9 TYPE i.
4
5 len9 = strlen( string9 ).
6 WRITE: string9, '!'.
7 WRITE: / 'Length: ', len9.
8 CONDENSE string9.
9 len9 = strlen( string9 ).
10 WRITE: string9, '!'.
11 WRITE: / 'Length: ', len9.
12 CONDENSE string9 NO-GAPS.
13 len9 = strlen( string9 ).
14 WRITE: string9, '!'.
15 WRITE: / 'Length: ', len9.

--------------------------------------------------------
输出结果:
one two three four !
Length: 25 one two three four !
Length: 18 onetwothreefour !
Length: 15
--------------------------------------------------------
TRANSLATE:实现字符串转换.
TRANSLATE c TO UPPER CASE.
TRANSLATE c TO LOWER CASE.
TRANSLATE c USING c1.

1 * translating signs
2 DATA: t5(10) TYPE c VALUE 'AbCdEfGhIj',
3 string5 LIKE t5,
4 rule5(20) TYPE c VALUE 'AxbXCydYEzfZ'.
5
6 string5 = t5.
7 WRITE string5.
8 TRANSLATE string5 TO UPPER CASE. "#EC SYNTCHAR
9 WRITE / string5.
10 string5 = t5.
11 TRANSLATE string5 TO LOWER CASE. "#EC SYNTCHAR
12 WRITE / string5.
13 string5 = t5.
14 TRANSLATE string5 USING rule5. "#EC SYNTCHAR
15 WRITE / string5.

----------------------------------------------
输出结果:
AbCdEfGhIj
ABCDEFGHIJ
abcdefghij
xXyYzZGhIj
----------------------------------------------
TRANSLATE c … FROM CODE PAGE g1 … TO CODE PAGE g2.
OVERLAY:参考字符串对空白字符进行填充.
OVERLAY c with c1.
REPLACE:字符串按条件取代.
REPLACE f … WITH g … INTO h.

1 * replacing values
2 DATA: t4(10) TYPE c VALUE 'abcdefghij',
3 string4 LIKE t4,
4 str41(4) TYPE c VALUE 'cdef',
5 str42(4) TYPE c VALUE 'klmn',
6 str43(2) TYPE c VALUE 'kl',
7 str44(6) TYPE c VALUE 'klmnop',
8 len4 TYPE i VALUE 2.
9
10 string4 = t4.
11 WRITE string4.
12 REPLACE str41 WITH str42 INTO string4.
13 WRITE / string4.
14 string4 = t4.
15 REPLACE str41 WITH str42 INTO string4 LENGTH len4.
16 WRITE / string4.
17 string4 = t4.
18 REPLACE str41 WITH str43 INTO string4.
19 WRITE / string4.
20 string4 = t4.
21 REPLACE str41 WITH str44 INTO string4.
22 WRITE / string4.

----------------------------------------------
输出结果:
abcdefghij
abklmnghij
abklmnefgh
abklghij
abklmnopgh
--------------------------------------------------------
SERACH:搜索指定字符串. 通过SY_SUBRC取值得到查询结果.
SERACH f FOR g.
[ABBREVIATED] : 从指定字符串中按顺序搜索相匹配字符串 abbreviated
[STARTING AT n1 ]:从字符串第n1个字符串开始搜索
[ENDING AT n2 ]:搜索到字符串第 n2个字符为止
[AND MARK]:从指定字符串中模糊搜索相匹配字符串

1 *searching strings
2 DATA string7(30) TYPE c VALUE 'This is a little sentence.'.
3 WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.
4
5 ULINE /1(26).
6 SEARCH string7 FOR 'X'.
7 WRITE: / 'X', sy-subrc UNDER 'SY-SUBRC',
8 sy-fdpos UNDER 'SY-FDPOS'.
9 SEARCH string7 FOR 'itt '.
10 WRITE: / 'itt ', sy-subrc UNDER 'SY-SUBRC',
11 sy-fdpos UNDER 'SY-FDPOS'.
12 SEARCH string7 FOR '.e .'.
13 WRITE: / '.e .', sy-subrc UNDER 'SY-SUBRC',
14 sy-fdpos UNDER 'SY-FDPOS'.
15 SEARCH string7 FOR '*e'.
16 WRITE: / '*e ', sy-subrc UNDER 'SY-SUBRC',
17 sy-fdpos UNDER 'SY-FDPOS'.
18 SEARCH string7 FOR 's*'.
19 WRITE: / 's* ', sy-subrc UNDER 'SY-SUBRC',
20 sy-fdpos UNDER 'SY-FDPOS'.

----------------------------------------------
输出结果:
Searched SY-SUBRC SY-FDPOS
--------------------------------------------
X 4 0
itt 0 11
.e . 0 15
*e 0 10
s* 0 17
----------------------------------------------

1 *
2 DATA: string8(30) TYPE c VALUE 'This is a fast first example.',
3 pos8 TYPE i,
4 off8 TYPE i.
5
6 WRITE / string8.
7 SEARCH string8 FOR 'ft' ABBREVIATED.
8 WRITE: / 'SY-FDPOS:', sy-fdpos.
9 pos8 = sy-fdpos + 2.
10 SEARCH string8 FOR 'ft' ABBREVIATED STARTING AT pos8 AND MARK.
11 WRITE / string8.
12 WRITE: / 'SY-FDPOS:', sy-fdpos.
13 off8 = pos8 + sy-fdpos - 1.
14 WRITE: / 'Off:', off8.

----------------------------------------------
输出结果:
This is a fast first example.
SY-FDPOS: 10
This is a fast FIRST example.
SY-FDPOS: 4
Off: 15
----------------------------------------------
SERACH itab FOR g.
[ABBREVIATED] : 从内表中按顺序逐行搜索相匹配字符串
[STARTING AT line1 ]:从字符串第n1个字符串开始搜索
[ENDING AT line2 ]:搜索最大范围到内表中具体某行
[AND MARK]:从内表中模糊搜索相匹配字符串
搜索内表与字符串操作一致:
PS:其中源码部分来自SAP官方文档。
ABAP 字符串函数的更多相关文章
- ABAP CDS - 字符串函数
下表显示了ABAP CDS中CDS视图中字符串的潜在SQL函数,以及对参数的要求.函数的含义可以在字符串的SQL函数下找到. 函数 参数类型 返回类型 CONCAT(arg1, arg2) See b ...
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
- SQL字符串函数
LEN() :计算字符串长度(字符的个数.)datalength();//计算字符串所占用的字节数,不属于字符串函数.测试varchar变量与nvarchar变量存储字符串a的区别.见备注1.LOWE ...
- Python3中的字符串函数学习总结
这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...
- TSQL 字符串函数:截断和查找
字符串截断函数是指:Stuff 和 SubString,字符串查找函数是:CharIndex 和 PatIndex 一,SubString 截取子串 最常用的字符串函数,用于截取特定长度的子串. SU ...
- c#编程基础之字符串函数
c#常用的字符串函数 例一: 获取字符串的大小写函数 ToLower():得到字符串的小写形式 ToUpper():得到字符串的大写形式 注意: 字符串时不可变的,所以这些函数都不会直接改变字符串的内 ...
- SQLSERVER常见系统函数之字符串函数(一)
好久没有写博客了,这段时间准备写一下字符串函数 QQ群: 499092562:欢迎交流 字符串函数: 1.LEN(需要获取长度的字符串) 返回:字符串的长度 示例: SELECT LEN('小搬运工很 ...
- python笔记-字符串函数总结
字符串函数: chr() 数字转ASCII chr(96)="a" ord() ASCII转数字 ord("a")=96 isspace() 判断是否为空格 s ...
- Sql Server函数全解<一>字符串函数
阅读目录 1.ASCII()函数 2.CHAR()函数 3.LEFT()函数 4.RIGHT()函数 5.LTRIM()函数 6.RTRIM()函数 7.STR()函数 8.字符串逆序的函数REVER ...
随机推荐
- 熟悉SQL Server 数据类型
SQL Server中包含了4种不同的数据类型,一 数字型,二 日期与时间, 三 字符串, 四 其他 上述4个大类中,每一类包含一定数量的子类. 表中的每一列,被声明的变量,参数等,都必须有与之相对应 ...
- 微信小程序自定义微信客服按钮
微信小程序官方api中提到的微信客服,是一个固定的组件,图标样式固定,大小最多27px 很明显这个是不能满足我们各种奇葩需求的.下面提供一个野蛮的自定义方法. 比如做一个这样的按钮: 图标用自定义的, ...
- mysql外键的三种关系
因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 一对多或多对一 create table press( id int primary key auto_inc ...
- 使用jQuery编辑删除页面内容,两种方式
第一种,比较少的编辑用这种,直接在那块内容上编辑,失去焦点即完成 前几天做编辑框的时候,需要只修改一个状态 //编辑角色 function editTr($this){ thatTd=$($this) ...
- Linux配置和管理msyql命令
配置和管理msyql: 1. 修改mysql最大连接数:cp support-files/my-mediuf,vim my.cnf,增加或修改max_connections=1024 关于my.cnf ...
- b1.关于em和px的关系
一般默认 1em=12px , em相对于其父元素的px定义: 但是 如果本身元素设置 font-size: 15px; em与px的比例随之变化. 一般根据浏览器默认的font-size:12p ...
- <转载> 22种代码味道(Martin Fowler与Kent Beck) http://blog.csdn.net/lovelion/article/details/9301691
Martin Fowler在Refactoring: Improving the Design of Existing Code(中译名:<重构——改善既有代码的设计>)一书中与Kent ...
- es 高级
事务处理 _settings _refresh _flush 慢查询 存储模块 mmap local simplefs 缓存 IO 调节 热点线程 suggesters _suggest 端点 插件 ...
- idea 关闭自动保存,未保存星号提醒, springboot + freemarker 热部署
1,自动保存 File > setting 去掉下图勾选 2,未保存文件星号提示 File > Settings 3,spring boot 项目 热部署 3.1,pom文件添加依赖 &l ...
- 使用STM32CubeMX生成待机开关功能
使用的开发板为MINISTM32 通过长按数秒KEY_UP 按键开机,并且通过 DS1 的闪烁指示程序已经开始运行,再次长按该键,则进入待机模式, DS1 关闭,程序停止运行.利用STM32的stan ...