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

例: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

ABAP字符串处理的更多相关文章

  1. ABAP字符串操作 截取字符长度 取位数

    ABAP字符串操作   ABAP對字串的操作方法與其他語言的操作有較大差別,以下是較常用的對字串操作的方法: 1. 字串的連接:CONCATENATEDATA: t1 TYPE c LENGTH 10 ...

  2. ABAP 字符串操作

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

  3. ABAP字符串的加密与解密

    FIEB_PASSWORD_DECRYPT:字符串解密:FIEB_PASSWORD_ENCRYPT:字符串加密.旧版本的可以用. PARAMETERS:str1 type char32 OBLIGAT ...

  4. abap 字符串处理

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

  5. ABAP 字符串函数

    CONCATENATE:合并字符串. CONCATENATE f1 … fn INTO g [SEPARATED BY h]. 1 * CONCATENATE合并字符串 2 DATA: c1(10) ...

  6. ABAP 字符串换行符处理

    今天发现BW系统从K3系统数据库抽取会计科目的描述时,转换出错. 从监控器上看是值2KO 845 412D#有问题,但不知道有什么问题,检查后感觉是符号#的问题. 在转换中添加代码,替换#,发现没有起 ...

  7. ABAP字符串操作1 检查字段小数位的长度

    目的: 标准值1-6检查----最多保留小数点后3位 ,如果超出3位,显示错误信息”请检查父件XXX工序XXX的标准值X 的数值XXXX超出3位 “,退出. 关键语法1. SPLIT ,        ...

  8. ABAP字符串翻转

    就这个函数STRING_REVERSE 略显蛋疼,好搞那么复杂.... 简单的转换嘛: FUNCTION ZSTRING_REVERSE. *"----------------------- ...

  9. ABAP字符串按长度拆分

    REPORT ytest_012 MESSAGE-ID oo. ) TYPE c. ) TYPE c. ) TYPE c. DATA: l_pos TYPE i. DATA: BEGIN OF ls_ ...

随机推荐

  1. Word 中的橫式格式方程式和數學自動校正

    以橫式格式輸入方程式 您可以使用數學自動校正程式碼,迅速輸入大多數的方程式.例如,若要對齊方程式陣列,您可以使用 @ 和 &,如下所示: \eqarray(x+1&=2@1+2+3+y ...

  2. php cookie session 深究一下

    当一个用户用浏览器访问web(www.96net.com.cn)时候,若服务器开启session_start() 服务器tmp临时目录 自动生成session_id 并放回给创建一个cookie 保存 ...

  3. Git--08 Jenkins

    目录 Jenkins 01. 安装准备 02 .安装Jdk和Jenkins 03 .配置Jenkins 04. 插件安装 05. 创建项目 06. Jenkins获取Git源代码 07. 立即构建获取 ...

  4. mysql授予权限

    grant show databases on *.* to 'asg'@'%'; grant select on *.* to 'asg'@'%'; grant show view on *.* t ...

  5. 在Linux服务器上运行jar包,并且使jar包一直处于后台执行

    1.我jar包在linux的目录为/a/bbb.jar         正常情况下,使用在/a目录下使用  java -jar bbb.jar 可以直接运行该jar包的项目,运行成功之后使用crtl+ ...

  6. LOJ149 0/1分数规划

    竟然没有写过分数规划的题解 考前挣扎一发板子( 二分答案k 然后0/1分数规划的方法就是 分母乘过去然后贪心解决 注意实数二分的精度 一般估计一个次数比较好不然容易出现精度比较误差[惨痛教训 就做完了 ...

  7. python运行windows终端程序

    其实是用python控制windows里的shell 1.windows有PowerShell,可以通过搜索打开,运行python不需要打开shell 2.用python里的subprocess函数, ...

  8. Vue.js----date与时间戳的转换(unixTime)Moment.js让日期处理变得更简单

    当前日期格式化 let curTime = moment().format('YYYY-MM-DD HH:mm:ss') console.log('当前日期时间curTime:' + curTime) ...

  9. boost array

    boost::array is similar to std::array, which was added to the standard library with C++11. With boos ...

  10. Java反射及注解学习- 反射的使用 - JDK动态代理

    代理模式基本概念:1.代理模式的作用:为其他对象提供一种以控制对方的访问在某种情况下,一个客户不想或者不能直接引用另一个对象,代理可以在客户端和目标对象之间起到中介的作用代理的角色:(1)抽象角色:声 ...