abap 字串處理
1.對字串的操作
1).SHIFT:截斷字串
SHIFT {c} [BY {n} PLACES] [{mode}].:
作用:去掉字串的前n個位置的字元,如果n未指定,預設為1,如果指定的n小於等於0,則字串不變。如果n超出字串的長度,則字串變空,所以在做此操作的時候要注意n的指定。可以首先獲得該字串的長度,方法:len=STRLEN(C)。
Mode:指定字串截斷的方向。
LEFT:從左邊截斷
RIGHT:從右邊截斷
CIRCULAR:把左邊的字元放到右邊。
SHIFT {c} UP TO {str} {mode}.:
作用:把字串中在str以前的字元都去掉,同樣可以指定mode,原理同上。
SHIFT {c} LEFT DELETING LEADING {str}.
SHIFT {c} RIGHT DELETING TRAILING {str}.:
作用:這兩個語句就是把字串c中前的(LEFT)或者後的(RIGHT)的字元str都去掉。
以上語句常用的場合:
A.去掉字串中的前導字元。例如:如果alv中定一了一個欄位是10位的字元,裡面放的是so,po等number,而你不想顯示前面的0,那麼就可以這樣做:SHIFT {c} LEFT DELETING LEADING 0.
B.已知某個字串中包含固定的字元,想把這個固定字元前面的字元刪掉,那麼可以使用:SHIFT {c} UP TO {str}。例如:某個物料,通過增強mga00002和mga00003對其加了字首,這個字首部分是在某固定值表中取得的資料,在具體顯示中,要把其字首去掉。如TE-MRP-MAT1中想把te去掉,mrp表示該物料是跑mrp的,需求要求把te-去掉,mrp可以在固定值表中取得,則可以使用SHIFT {c} UP TO 'MRP'.
2).REPLACE:替換字串
REPLACE {str1} WITH {str2} INTO {c} [LENGTH {l}].:
作用:把字串c中的str1替換成str2,如果指定l,就是指定了替換的長度。如果替換成功,則SY-SUBRC設定成0。
常用場合:
字串的替換操作比較常用,需要注意的是l的指定長度。
3). TRANSLATE:轉換字串
TRANSLATE {c} TO UPPER CASE.
TRANSLATE {c} TO LOWER CASE.:
作用:字串的大小寫的轉換
TRANSLATE {c} USING {r}. :
作用:根據規則r轉換字串c
常用場合:
Sap系統一般都是使用大寫字母的,但是某些特定的欄位卻是用小寫字母來標記的,在操作這些欄位的時候就需要注意大小寫的轉換了。轉換規則倒是不太常用,到現在我還沒有遇到過。
4). SEARCH:查詢字串
SEARCH {c} FOR {str} {options}.:
作用:在字串c中查詢str,如果找到了,SY-SUBRC為0,SY-FDPOS為找到字串的具體位置。
需要說明的地方:注意模式的使用
指定str:查詢str,str中後面的空格忽略
指定.str.:查詢str,包含了str中尾部的空格
指定*str:查詢以str結尾的字串
指定str*:查詢以str開頭的字串
{options}的指定:
主要用到的就是:STARTING AT {n1}指定開始位置
ENDING AT {n2}指定結束位置
常用場合:
一般用來判斷某個字串是否符合條件。也可以結合其他語句對字串進行操作。
5).CONDENSE:去掉字串中的空格
CONDENSE {c} [NO-GAPS].:
作用:去掉字串中的前面和後面的空格,如果指定NO-GAPS,則去掉字串中的所有空格。
常用場合:獲得字串的精確長度,用於判斷。
6).SPLIT:拆分字串
SPLIT {c} AT {del} INTO {c1} ... {cn}.
作用:按照分割字元del把字串c分割成c1…cn。
SPLIT {c} AT {del} INTO TABLE {itab}.
作用:按照分割字元del把c分割,然後放到內表中的相應欄位
常用場合:
檔名的分割,根據完整的檔案路徑加檔名把檔名分割出來。
難點:無法確定要分割多少次.
解決方法:兩兩分割,到最後的那個就是了。例如:str=c:/dir1/dir2/dir3/file
Split str at '/' into str1 str2.
Find str2 for '/'.
Check sy-subrc = 0.
Do.
Find str2 for '/'.
If sy-subrc = 0.
Split str2 into str1 str2.
Else.
Exit.
Endif.
Enddo.
檔案上傳的型別是字串,把其分割後放到內表中。例如上面的問題:
data: begin of itab occurs 0 ,
col1(30) type c,
end of itab.
Split str at '/' into table itab.
describe table itab lines line.
Read table itab index line.
Itab-col1就是file
7).CONCATENATE:連線字串
CONCATENATE {c1} ... {cn} INTO {c} [SEPARATED BY {s}].
作用:把c1…cn用s分隔連線到c中
常用場合:檔案下載,對檔案中的欄位編輯。
1).SHIFT:截斷字串
SHIFT {c} [BY {n} PLACES] [{mode}].:
作用:去掉字串的前n個位置的字元,如果n未指定,預設為1,如果指定的n小於等於0,則字串不變。如果n超出字串的長度,則字串變空,所以在做此操作的時候要注意n的指定。可以首先獲得該字串的長度,方法:len=STRLEN(C)。
Mode:指定字串截斷的方向。
LEFT:從左邊截斷
RIGHT:從右邊截斷
CIRCULAR:把左邊的字元放到右邊。
SHIFT {c} UP TO {str} {mode}.:
作用:把字串中在str以前的字元都去掉,同樣可以指定mode,原理同上。
SHIFT {c} LEFT DELETING LEADING {str}.
SHIFT {c} RIGHT DELETING TRAILING {str}.:
作用:這兩個語句就是把字串c中前的(LEFT)或者後的(RIGHT)的字元str都去掉。
以上語句常用的場合:
A.去掉字串中的前導字元。例如:如果alv中定一了一個欄位是10位的字元,裡面放的是so,po等number,而你不想顯示前面的0,那麼就可以這樣做:SHIFT {c} LEFT DELETING LEADING 0.
B.已知某個字串中包含固定的字元,想把這個固定字元前面的字元刪掉,那麼可以使用:SHIFT {c} UP TO {str}。例如:某個物料,通過增強mga00002和mga00003對其加了字首,這個字首部分是在某固定值表中取得的資料,在具體顯示中,要把其字首去掉。如TE-MRP-MAT1中想把te去掉,mrp表示該物料是跑mrp的,需求要求把te-去掉,mrp可以在固定值表中取得,則可以使用SHIFT {c} UP TO 'MRP'.
2).REPLACE:替換字串
REPLACE {str1} WITH {str2} INTO {c} [LENGTH {l}].:
作用:把字串c中的str1替換成str2,如果指定l,就是指定了替換的長度。如果替換成功,則SY-SUBRC設定成0。
常用場合:
字串的替換操作比較常用,需要注意的是l的指定長度。
3). TRANSLATE:轉換字串
TRANSLATE {c} TO UPPER CASE.
TRANSLATE {c} TO LOWER CASE.:
作用:字串的大小寫的轉換
TRANSLATE {c} USING {r}. :
作用:根據規則r轉換字串c
常用場合:
Sap系統一般都是使用大寫字母的,但是某些特定的欄位卻是用小寫字母來標記的,在操作這些欄位的時候就需要注意大小寫的轉換了。轉換規則倒是不太常用,到現在我還沒有遇到過。
4). SEARCH:查詢字串
SEARCH {c} FOR {str} {options}.:
作用:在字串c中查詢str,如果找到了,SY-SUBRC為0,SY-FDPOS為找到字串的具體位置。
需要說明的地方:注意模式的使用
指定str:查詢str,str中後面的空格忽略
指定.str.:查詢str,包含了str中尾部的空格
指定*str:查詢以str結尾的字串
指定str*:查詢以str開頭的字串
{options}的指定:
主要用到的就是:STARTING AT {n1}指定開始位置
ENDING AT {n2}指定結束位置
常用場合:
一般用來判斷某個字串是否符合條件。也可以結合其他語句對字串進行操作。
5).CONDENSE:去掉字串中的空格
CONDENSE {c} [NO-GAPS].:
作用:去掉字串中的前面和後面的空格,如果指定NO-GAPS,則去掉字串中的所有空格。
常用場合:獲得字串的精確長度,用於判斷。
6).SPLIT:拆分字串
SPLIT {c} AT {del} INTO {c1} ... {cn}.
作用:按照分割字元del把字串c分割成c1…cn。
SPLIT {c} AT {del} INTO TABLE {itab}.
作用:按照分割字元del把c分割,然後放到內表中的相應欄位
常用場合:
檔名的分割,根據完整的檔案路徑加檔名把檔名分割出來。
難點:無法確定要分割多少次.
解決方法:兩兩分割,到最後的那個就是了。例如:str=c:/dir1/dir2/dir3/file
Split str at '/' into str1 str2.
Find str2 for '/'.
Check sy-subrc = 0.
Do.
Find str2 for '/'.
If sy-subrc = 0.
Split str2 into str1 str2.
Else.
Exit.
Endif.
Enddo.
檔案上傳的型別是字串,把其分割後放到內表中。例如上面的問題:
data: begin of itab occurs 0 ,
col1(30) type c,
end of itab.
Split str at '/' into table itab.
describe table itab lines line.
Read table itab index line.
Itab-col1就是file
7).CONCATENATE:連線字串
CONCATENATE {c1} ... {cn} INTO {c} [SEPARATED BY {s}].
作用:把c1…cn用s分隔連線到c中
常用場合:檔案下載,對檔案中的欄位編輯。
相關文章
- 字串處理字串
- ABAP學習筆記-基礎語法-05-字串的處理(02)筆記字串
- awk 字串處理字串
- windows批處理之一:字串處理Windows字串
- ABAP字串操作字串
- jstl處理字串JS字串
- javascript字串處理類JavaScript字串
- LoadRunner字串處理 - 補齊字串字串
- Guava字串處理Joiner、SplitterGuava字串
- PHP 陣列 & 字串處理PHP陣列字串
- shell字串處理總結字串
- 簡單的字串處理字串
- SqlServer——字串處理函式SQLServer字串函式
- 字串的封送處理字串
- shell中字串的處理字串
- 安全字串處理函式字串函式
- GoldenGate COLMAP字串處理Go字串
- 處理字串的小程式字串
- bat 批處理字串操作BAT字串
- JavaScript常用的字串處理方法JavaScript字串
- MySQL 之動態字串處理MySql字串
- 第26章:高效字串處理字串
- sql對於字串的處理SQL字串
- php字串處理函式大全PHP字串函式
- PHP系列(五)PHP字串處理PHP字串
- 【轉載】SHELL字串處理技巧(${}、##、%%)字串
- SQL字串處理函式大全SQL字串函式
- 06.字元和字串處理字元字串
- 如何處理ABAP DDIC_TYPE_INCONSISTENCY錯誤
- Java入門教程四(字串處理)Java字串
- MySQL 動態字串處理詳解MySql字串
- 字串和日期時間的處理字串
- 處理字串的方法都在這裡字串
- js字串與json物件處理字串JSON物件
- iOS NSString 字串的特殊處理iOS字串
- (Java)字串處理--equals()和equalsIgnoreCase()Java字串
- SQL Server字串處理函式大全SQLServer字串函式
- C語言之字串處理函式C語言字串函式