字符串中包含单引号:单引号前面再加一个单引号

例:jest~stat = 'E0002'

jest~stat = 'E0003' OR jest~stat = 'E0004'

IF z_stat IS INITIAL.
  z_stat = 'jest~stat = ''E0002'''.
ELSE.
  z_stat = 'jest~stat = ''E0003'' OR jest~stat = ''E0004'''.
ENDIF.

1、连接字符串

CONCATENATE {dobj1 dobj2 ...}|{LINES OF itab} 
             INTO result 
             [IN {BYTE|CHARACTER} MODE] 
            [SEPARATED BY sep] 
            [RESPECTING BLANKS].

2、拆分字符串:

SPLIT dobj AT sep INTO 
      { {result1 result2 ...} | {TABLE result_tab} } 
      [IN {BYTE|CHARACTER} MODE].

例:

DATA: str  TYPE string VALUE '字符串一 字符串二 字符串三 字符串四',
      str1 TYPE string,
      str2 TYPE string,
      str3 TYPE string.
SPLIT str AT space INTO str1 str2 str3.
WRITE: / str1, / str2, / str3.
字符串一
字符串二
字符串三 字符串四

注意:没有足够的目标字段,则用str的剩余部分填充最后目标字段。

可以用一个内表来接收拆分后的子串,可以自动增长,就不用担心目标字段不够用了。例子如下:

DATA: str    TYPE string VALUE '字符串一 字符串二 字符串三 字符串四'.
DATA: it_str TYPE TABLE OF string,
      wa_str LIKE LINE OF it_str.
SPLIT str AT space INTO TABLE it_str.
LOOP AT it_str INTO wa_str.
  WRITE: / wa_str.
ENDLOOP.
字符串一
字符串二
字符串三
字符串四

segment()函数

segmentval = text index = idx [sep|space = sep] )

根据指定的字符串sep或者指定的字符sapce来将text拆分,并返回第idx(从1开始)个片断

3、截断字符串:

SHIFT {c} [BY {n} PLACES] [{mode}].:

字符串移动

字符串替换

替换指定的字符串(老式的,已过时的)

REPLACE sub_string WITH new INTO dobj 
        [IN {BYTE|CHARACTER} MODE] 
        [LENGTH len].

替换某个区间上的字符串

REPLACE SECTION [OFFSET off] [LENGTH len] OF dobj WITH new
                [IN {BYTE|CHARACTER} MODE].

OFFSET or LENGTH必须要指定一个,如果指定了OFFSET,但未指定LENGTH时,替换的内容从OFFSET到dobj的最后;如果指定了LENGTH,但未指定OFFSET时,OFFSET将隐含为0。OFFSETLENGTH需要大于或等于0,通过OFFSET与LENGTH定位到的子字符串段必须要位于dobj里。

replace

返回码:

0 ——替换成功,并且结果未被截断

2 ——替换成功,但结果右边被截断

4 ——未找到要替换的字符串

replace()函数regex

replaceval = text [off = off] [len = len] with = new )

replaceval = text {sub = substring}|{regex = regex} with = new [case = case] [occ = occ] )

使用new替换指定的子符串,返回String类型。

搜索字符串

SEARCH <c> FOR <str> <options>.

contains()函数regex

matches()函数regex

count()函数regex

最新文章

  1. 关于for循环的几个小练习,例如奇数偶数,阶乘,求和等
  2. SSRS3: Credentials配置
  3. HSF和Dubbo有什么区别
  4. AngularJS 使用$sce控制代码安全检查
  5. Storm自带测试案例的运行
  6. 教你理解Fragment
  7. MMO之禅(二)职业精神
  8. MyEclipse使用SVN进行项目版本控制
  9. 网络流-最大流 模板(poj 1273)
  10. C++程序设计课程学习的网址
  11. Golang学习 - unicode 包
  12. lintcode:在二叉查找树中插入节点
  13. Apache配置完虚拟主机后,使用Chrome访问localhost还是默认目录htdocs
  14. fastxml Jackson JsonNode (ObjectNode) 转 List
  15. C++--allocator类的使用
  16. Java虚拟机学习 - 垃圾收集器
  17. hdu1251字典树递归算法
  18. 手把手教你在CSDN博客中插入图片之剑走偏锋系列
  19. python3 中 Event.wait 多线程等待
  20. HSmartWindowControl 之 显示图像

热门文章

  1. Redis数据库-基础篇
  2. java.net.ProtocolException: Exceeded stated content-length of: &#39;13824&#39; bytes
  3. tensorflow用dropout解决over fitting
  4. CMS(1)
  5. Linux学习笔记之磁盘与文件系统的管理
  6. Django组件——用户认证
  7. Python- 【python无法更新pip】提示python.exe: No module named pip
  8. Linux ct6.5安装rabbitmq
  9. Codeforces Round #518 (Div. 1) Computer Game 倍增+矩阵快速幂
  10. Java打印流学习