abap 字串處理

2021-06-19 21:46:16 字數 2700 閱讀 6451

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...