1.對字串的操作
1).shift:截斷字串
shift [by places] .:
作用:去掉字串的前n個位置的字元,如果n未指定,預設為1,如果指定的n小於等於0,則字串不變。如果n超出字串的長度,則字串變空,所以在做此操作的時候要注意n的指定。可以首先獲得該字串的長度,方法:len=strlen(c)。
mode:指定字串截斷的方向。
left:從左邊截斷
right:從右邊截斷
circular:把左邊的字元放到右邊。
shift up to .:
作用:把字串中在str以前的字元都去掉,同樣可以指定mode,原理同上。
shift left deleting leading .
shift right deleting trailing .:
作用:這兩個語句就是把字串c中前的(left)或者後的(right)的字元str都去掉。
以上語句常用的場合:
a.去掉字串中的前導字元。例如:如果alv中定一了乙個欄位是10位的字元,裡面放的是so,po等number,而你不想顯示前面的0,那麼就可以這樣做:shift left deleting leading 0.
b.已知某個字串中包含固定的字元,想把這個固定字元前面的字元刪掉,那麼可以使用:shift up to 。例如:某個物料,通過增強mga00002和mga00003對其加了字首,這個字首部分是在某固定值表中取得的資料,在具體顯示中,要把其字首去掉。如te-mrp-mat1中想把te去掉,mrp表示該物料是跑mrp的,需求要求把te-去掉,mrp可以在固定值表中取得,則可以使用shift up to 'mrp'.
2).replace:替換字串
replace with into [length ].:
作用:把字串c中的str1替換成str2,如果指定l,就是指定了替換的長度。如果替換成功,則sy-subrc設定成0。
常用場合:
字串的替換操作比較常用,需要注意的是l的指定長度。
3). translate:轉換字串
translate to upper case.
translate to lower case.:
作用:字串的大小寫的轉換
translate using . :
作用:根據規則r轉換字串c
常用場合:
sap系統一般都是使用大寫字母的,但是某些特定的字段卻是用小寫字母來標記的,在操作這些欄位的時候就需要注意大小寫的轉換了。轉換規則倒是不太常用,到現在我還沒有遇到過。
4). search:查詢字串
search for .:
作用:在字串c中查詢str,如果找到了,sy-subrc為0,
sy-fdpos為找到字串的具體位置。
需要說明的地方:注意模式的使用
指定str:查詢str,str中後面的空格忽略
指定.str.:查詢str,包含了str中尾部的空格
指定*str:查詢以str結尾的字串
指定str*:查詢以str開頭的字串
的指定:
主要用到的就是:starting at 指定開始位置
ending at 指定結束位置
常用場合:
一般用來判斷某個字串是否符合條件。也可以結合其他語句對字串進行操作。
5).condense:去掉字串中的空格
condense [no-gaps].:
作用:去掉字串中的前面和後面的空格,如果指定no-gaps,則去掉字串中的所有空格。
常用場合:獲得字串的精確長度,用於判斷。
6).split:拆分字串
split at into ... .
作用:按照分割字元del把字串c分割成c1…cn。
split at into table .
作用:按照分割字元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 ... into [separated by ].
作用:把c1…cn用s分隔連線到c中
abap 字串操作 ABAP 字串常用處理方法
split dobj at sep into 必須指定足夠目標字段。否則,用字段dobj的剩餘部分填充最後目標欄位幷包含分界符 或者使用內錶動態接收 data l str type string,l str1 type c,l str2 type c.data begin of lt str occ...
ABAP學習筆記 處理字串
color indigo size medium 一 移動字段內容 1 按給定位置數移動字串 語法 shift by places 將字段移動個位置,如果省略by places,則將解釋為乙個位置 如果是0或負數,則保持不變 如果超過長度,則用空格填充。可為變數。可以為 left 向左移動個位置,右...
abap字串控制函式
字串控制函式 concatenate 實現字串合併 語法 concatenate f1.fn into g by h data one 10 value hello two 10 value sap result1 10 result2 10 concatenate one two into res...