ABAP字符串處理


字符串中包含單引號:單引號前面再加一個單引號

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

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM