REPLACE [FIRST /ALL OCCURRENCES OF]<STR1>INTO <STR> WITH <STR2>
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
DATA STR1 TYPE C LENGTH 3 VALUE 'HOW'.
DATA STR2 TYPE C LENGTH 4 VALUE 'SDFH'.
REPLACE FIRST OCCURRENCE OF STR1 IN STR WITH 'SDFH'.
REPLACE FIRST OCCURRENCE OF STR1 IN STR WITH STR2.
REPLACE FIRST OCCURRENCE OF 'HOW' IN STR WITH STR2.
替換字符串STR 中第一次出現STR1 的地方.
OF 后面跟被替換的內容,能夠是變量和常數,
WITH 后面跟要替換的內容,能夠是變量和常數。
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
REPLACE ALL OCCURRENCES OF STR1 IN STR WITH STR2.
替換字符串STR 中全部出現STR1 的地方.
REPLACE STR1 IN STR WITH STR2 .
默認僅僅替換第一次出現的地方.
REPLACE <STR1> WITH <STR2> INTO <STR> [LENGTH <1>]
僅僅能替換字符串STR 中第一次出現STR1 的地方.
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
DATA STR1 TYPE C LENGTH 3 VALUE 'HOW'.
DATA STR2 TYPE C LENGTH 4 VALUE 'SDFH'.
REPLACE STR1 WITH STR2 INTO STR LENGTH '2'.
LENGTH '2' 表示被替換的字符長度。
REPLACE STR1 WITH STR2 INTO STR.
沒有LENGTH 默認所有替換
注意
FIRST /ALL OCCURRENCES OF 不能與 LENGTH 同一時候用,兩種語法間的差別。
轉換大/小寫
將字符串轉換成大寫
DATA STR3 TYPE C LENGTH 50 VALUE ' qaewrwetW'.
TRANSLATE STR3 TO UPPER CASE.
將字符串轉換成小寫
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
TRANSLATE STR TO LOWER CASE.
查找字符串
若要查看結果,將查找結果放入查找結果表中.
ABAP 中有專門的存放查找結果的表類型MATCH_RESULT_TAB.
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
DATA STR1 TYPE C LENGTH 3 VALUE 'HOW'.
DATA RESLT TYPE MATCH_RESULT_TAB.
FIND FIRST OCCURRENCE OF STR1 IN STR RESULTS RESLT.
找出字符串STR 中第一次出現字符串 STR1 的地方。
查找結果是行數(第0行),起始位數(第4位),長度(3位)
起始位數19,長度3
起始位數4,長度3
找出字符串STR 中全部出現字符串 STR1 的地方。
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
DATA STR1 TYPE C LENGTH 3 VALUE 'HOW'.
FIND ALL OCCURRENCES OF STR1 IN STR RESULTS RESLT.
獲得字符串長度.
STRLEN(<c>) :<c>數據類型僅僅能是C,N,D,T
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
DATA INT1 TYPE I.
INT1 = STRLEN( STR ).
獲取字符串STR的長度,結果放入變量INT1 中.
INT1 = STRLEN( 'STR' ).
注意:括號內兩邊要有空格,括號內能夠是常量,也能夠是變量.
D,T數據類型的長度是固定的。為8位和6位,而C,N 型依據實際情況.
壓縮字段內容
單個單詞時
DATA STR4 TYPE C LENGTH 10 VALUE ' HOW '.
CONDENSE STR4.
去掉單詞兩邊得空格。
有多個單詞時。單詞之間用空格隔開,其余空格所有去掉。
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
CONDENSE STR .
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
CONDENSE STR NO-GAPS.
NO-GAPS作用。去除全部的空格。
在定義時。假設指定了字符串長度。WRITE輸出時。輸出長度等於定義長度
DATA STR TYPE C LENGTH 50 VALUE ' HOW ARE YOU HOW'.
CONDENSE STR .
WRITE :str,'!'.
50位
DATA STR TYPE STRING VALUE ' HOW ARE YOU HOW'.
CONDENSE STR .
WRITE :str,'!'.
注意:CONDENSE 后面的變量僅僅能是C,N,D,T類型的。
DATA INT1(15) TYPE N VALUE '21 02 3'.
CONDENSE INT1 .
對於N型數據,CONDENSE去掉空格后,會在前面補充前導0.
DATA INT1 TYPE D VALUE '21 2 3'.
CONDENSE INT1 .
DATA INT1 TYPE T VALUE '22 3 '.
CONDENSE INT1 .
連接字符串
CONCATENATE <c1> ... <cn> INTO<c> [SEPARATED BY <s>].
DATA STR1 TYPE STRING VALUE ' AB01 ' .
DATA STR2 TYPE STRING VALUE ' CD02 '.
DATA STR TYPE STRING .
CONCATENATE STR1 STR2 INTO STR .
被去掉了
DATA STR1 TYPE STRING VALUE ' AB01 ' .
DATA STR2 TYPE STRING VALUE ' CD02 '.
5位空格
DATA STR1 TYPE STRING VALUE ' AB01 ' .
DATA STR2 TYPE STRING VALUE 'CD02 '.
通過對照,拼接時會自己主動去掉拼接對象后面的空格,而前面的空格保留。
SEPARATED BY 拼接時用什么隔開。
CONCATENATE STR1 STR2 INTO STR SEPARATED BY ',' .
TAB鍵隔開.
CONCATENATE STR1 STR2 INTO STR
SEPARATED BY CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB .
TAB 鍵在這里無法顯示,以#號鍵表示
日期拼接
DATA INT1 TYPE D VALUE '20110218' .
DATA INT2 TYPE D VALUE '20110219'.
DATA STR TYPE STRING .
CONCATENATE INT1 INT2 INTO STR.
時間拼接
DATA INT1 TYPE T VALUE '123226' .
DATA INT2 TYPE T VALUE '112336'.
DATA STR TYPE STRING .
CONCATENATE INT1 INT2 INTO STR.
數字文本拼接
DATA INT1(6) TYPE N VALUE '123226' .
DATA INT2(6) TYPE N VALUE '112336'.
DATA STR(12) TYPE N .
CONCATENATE INT1 INT2 INTO STR.
注意:C,N,D,T類型的數據可拼接。I,F,P,X類型的數據 不能拼接。
D,T型拼接時。由於都是定長度,假設用DT類型接收。僅僅能取到第一條數據。失去拼接的意義,所以接收類型定為STRING或N型。
4位空格
拼接時。若要保留字符串后面的空格,使用偏移量方法。
1位空格
5位空格
DATA STR1 TYPE STRING VALUE ' AB01 ' .
DATA STR2 TYPE STRING VALUE ' CD02 '.
DATA STR3 TYPE STRING VALUE ' EF03 '.
DATA STR TYPE C LENGTH 16.
STR+0(9) = STR1.
STR+9(5) = STR2.
使用偏移量時注意:(1)括號前面的數字位開始位,括號中面的數字為長度。
(2)接收的變量須要指定長度。不能用STRING類型.
拆分字符串
SPLIT <c> AT <del> INTO <c1> ...<cn>.
DATA STR1 TYPE STRING .
DATA STR2 TYPE STRING .
DATA STR3 TYPE STRING .
DATA STR TYPE STRING VALUE 'OK,GOOD,NICE'.
SPLIT STR AT',' INTO STR1 STR2 STR3.
DATA STR4 TYPE C VALUE ','.
SPLIT STR AT STR4 INTO STR1 STR2 STR3.
將字符串STR 按‘。’拆分,放入變量STR1 STR2 STR3 中.
按字母拆分時。須要識別大寫和小寫
注意以上各部分的變化,先將字符串做TAB 拼接,因TAB 鍵在這里無法顯示。以’#’號表示,但這里的‘#’號不代表#號鍵。所以在用按’#’號拆分時無法成功。
這里的’#’代表的是TAB鍵,僅僅能用TAB 拆分.