轉—ABAP常用字串操作收集整理
字串首字元索引為 0; Character Fields: C,N, D, T, string (CNDT=> CN Data Time)
1. 字串連線
CONCATENATE dobj1 dobj2 ... INTO result
[IN { BYTE | CHARACTER } MODE]
[SEPARATED BY sep].
2.字串分隔, split 一個string的部分到一個內表或一系列的變數
SPLIT dobj AT sep INTO
{ {result1 result2 ...} | {TABLE result_tab} }
[IN {BYTE|CHARACTER} MODE].
3. 字串查詢, 在一個字串中查詢模式串(FIND or SEARCH)
FIND sub_string
IN SECTION [OFFSET off] [LENGTH len] OF dobj --> 灰色部分用來縮小目的串被查詢的範圍
[ IN { BYTE | CHARACTER } MODE ]
[ { RESPECTING | IGNORING } CASE ]
[ MATCH OFFSET moff ] [MATCH LENGTH mlen ].
FIND 'knows'
IN SECTION OFFSET 5 OF 'Everybody knows this is nowhere'
MATCH OFFSET moff " => moff = 10
MATCH LENGTH mlen. " => mlen= 5
在字串dobj中查詢pattern
SEARCH dobj FOR pattern [IN { BYTE | CHARACTER } MODE]
[STARTING AT p1] [ENDING AT p2]
[ABBREVIATED]
[AND MARK].
if sy-subrc = 0. then SY-FDPOS = 返回pattern在dobj中的位置
About pattern:
'pat' - 忽略尾部空格
'.pat.' -不忽略尾部空格
'*pat' - 以pat結尾
'pat*' - 以pat開始
單詞是指: 用 空格 , ; : ? ! () / + =分隔的字串
4. 字串替換
REPLACE SECTION [OFFSET off] [LENGTH len]
OF dobj WITH new
[IN { BYTE | CHARACTER } MODE].
REPLACE [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF]
[SUBSTRING] sub_string
IN [SECTION [OFFSET off] [LENGTH len] OF ] dobj WITH new
[IN {BYTE|CHARACTER} MODE]
[{RESPECTING|IGNORING} CASE]
[REPLACEMENT COUNT rcnt]
[REPLACEMENT OFFSET roff]
[REPLACEMENT LENGTH rlen].
eg:
DATA: text1 TYPE string VALUE 'xababx'.
REPLACE 'ab' IN text1 WITH 'xx'. --> xxxabx
5. 去前導0 (Remove leading zero)
SHIFT dobj LEFT DELETING LEADING '0'.
FM : CONVERSION_EXIT_ALPHA_OUTPUT
增前導0 (Add leading zero)
DATA v_s(5).
UNPACK '123' to v_s. ==> v_s = '00123'
FM: CONVERSION_EXIT_ALPHA_INPUT
SHIFT dobj
[{BY num PLACES} | {UP TO sub_string}]
[LEFT|RIGHT] [CIRCULAR]
SHIFT dobj
{LEFT DELETING LEADING} | {RIGHT DELETING TRAILING} pattern.
[IN {BYTE|CHARACTER} MODE].
6. 字串的長度, 內表的行數
STRLEN( dobj) 字串的長度
LINES( itab ) 內表的行數
7. 刪字串中的空格: CONDENSE text [NO-GAPS].
8. 大小寫轉換,字元變換
TRANSLATE text {TO {UPPER|LOWER} CASE} | {USING pattern}.
eg: text = `Barbcbdbarb`.
TRANSLATE text USING 'ABBAabba'. =>'Abracadabra'
9. CONVERT
CONVERT DATE dat [TIME tim [DAYLIGHT SAVING TIME dst]]
INTO TIME STAMP time_stamp TIME ZONE tz.
CONVERT TIME STAMP time_stamp TIME ZONE tz
INTO [DATE dat] [TIME tim]
[DAYLIGHT SAVING TIME dst].
CONVERT TEXT text INTO SORTABLE CODE hex.
10. OVERLAY text1 WITH text2 [ONLY pattern].
如果不指定後面的ONLY pattern, text1中的空格會被text2中的對應字元替代
如果指定只有匹配的字元才會被替代,注意大小寫敏感
11. 模式匹配
CO / CN contains only or notCA / NA contains any or not anyCS / NS contain string or not
CP / NP contains pattern or not
NOTE:
a) . CO, NO, CA, NA比較時區分大小寫, 並且尾部空格也在比較的範圍之內
data: s1(10) value 'aabb'.
if s1 co 'ab' ==> false
if s1 co 'ab ' ==>true
CS, NS, CP, NP不區分大小寫和尾部空格
b) .對於CP, NP
* = s?
+ = s
# 換碼字元, 用於匹配 *, +這樣的字元
##
#*
#+
#___ 比較結尾空格
#[a-z] 在CP, NP中強制區分大小寫
c) . 比較結束後,如果結果為真,sy-fdpos將給出s2在s1中的偏移量資訊
12. 特殊字元
在字串中加入回車換行或TAB字元,在其他語言可以使用$13$10這樣的ASCII碼進行插入.但在ABAP中要使用sap的類CL_ABAP_CHAR_UTILITIES. 裡面有字元常量:CR_LF,HORIZONTAL_TAB,NEWLINE等等.
13. 字串位操作
DATA: v_s(10) value 'abcd'.
v_s+0(1) = 'b'.
v_s+2(*) = '12'.
=> v_s = 'bb12'.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7941665/viewspace-997206/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ABAP常用字串操作收集整理字串
- ABAP字串操作字串
- ABAP資料庫操作(轉)資料庫
- scala常用操作-Tuple元祖轉換成String字串字串
- SAP ABAP 常用FUNCTION集錦(轉)Function
- ABAP字串操作 擷取字元長度 取位數字串字元
- 〔轉載〕ABAP常用函式集錦函式
- IOS 常用字串的操作iOS字串
- javascript中字串常用操作總結JavaScript字串
- Python字串操作常用函式Python字串函式
- shell中字串操作【轉】字串
- abap 字串處理字串
- Linux常用C函式—記憶體及字串操作篇(轉)Linux函式記憶體字串
- Awk 字串連線操作(字串轉數字,數字轉字串)字串
- Java 常用字串操作總結Java字串
- JavaScript中對字串常用的操作方法JavaScript字串
- 常用的ABAP functionFunction
- 【輪子01】常用字串操作方法字串
- scala常用操作-去除字串最後一個字元字串字元
- 最常用的PHP正規表示式收集整理PHP
- ABAP字串拼接保留空格字串
- 處理PHP中字串的常用操作及函式PHP字串函式
- 【轉載】Python字串操作之字串分割與組合Python字串
- (轉)Shell常用處理字串方法(備查)字串
- ABAP 常用FUNCTION集錦2Function
- ABAP 常用FUNCTION集錦1Function
- 超詳細!盤點Python中字串的常用操作Python字串
- 常用php操作redis命令整理(一)通用及字串型別PHPRedis字串型別
- C語言常用字串操作函式總結C語言字串函式
- 部分liunx下字串操作函式(轉載)字串函式
- 字串操作字串
- 【轉】shell指令碼處理字串的常用方法指令碼字串
- 自建函式移除數字串左邊的0(SAP/R3 ABAP) (轉)函式字串
- SAP ABAP資料表的操作
- Oracle data guard常用維護操作命令(轉)Oracle
- Linux常用操作疑難解答(2)(轉)Linux
- Linux常用操作疑難解答(1)(轉)Linux
- Linux常用操作疑難解答(3)(轉)Linux