ABAPString - ooxxvv/MySAPnotes GitHub Wiki
ABAPString
- 和字串處理的相關資料。
正規表示法
- 請見 REGEX
特殊字元
- 字串中加入換行 (enter) , 定位鍵 (tab)
- 空白 => SPACE
- 單引號 => 在字串中用兩個連續的單引號來表示
DATA: l_a TYPE C.
l_a = ''''.
使用 Class
- CL_ABAP_CHAR_UTILITIES 中有字符常量,例如:CR_LF, HORIZONTAL_TAB, NEWLINE 等等.
DATA : crlf(2) TYPE c.
DATA : l_html(4096) TYPE C.
crlf = cl_ABAP_char_utilities=>cr_lf.
CONCATENATE l_html crlf '_FUNCTION'
'30'
'WWW_GET_REPORT' '>' INTO l_html.
使用 Type (X)
- 可用 ASCII 碼來指定元
- 換行 (enter)
- CR => 13 , LF => 10
- Windows 用 CRLF , UNIX 用 LF , MAC 用 CR
- 定位 (tab) => 09
DATA : l_cr TYPE x VALUE 13,
l_lf TYPE x VALUE 10,
l_tab TYPE x VALUE 09.
將字串補前置零
- CONVERSION_EXIT_ALPHA_INPUT => 補前置零,但字串中有特殊符號(例小數點)則無法使用。
- 可用下面的 PERFORM 來達成。
FORM add_front_zero CHANGING fo_string.
DATA: l_subrc LIKE sy-subrc.
IF fo_string IS INITIAL.
EXIT.
ENDIF.
WHILE l_subrc EQ 0.
REPLACE space WITH '0' INTO fo_string.
l_subrc = sy-subrc.
ENDWHILE.
ENDFORM. " add_front_zero
關於字串的函數
-
ABAP語法
-
搜尋 => FIND
-
替換 => REPLACE
-
移動 => SHIFT
-
接合 => CONCATENATE
-
分割 => SPLIT
-
大小寫轉換 => TRANSLATE
-
字串覆蓋 => OVERLAY
-
壓縮字串 => CONDENSE
-
Function
-
CLOI_PUT_SIGN_IN_FRONT => 把數字的字尾負號放到前面
-
STRING_CONCATENATE => 將兩字串連結起來
-
STRING_LENGTH => 用來取得字串 (string) 的長度
-
NUMERIC_CHECK => 判斷某個字串的內容是否可轉為數字。
-
Source Code
-
Code20090526 => 在 non-unicode 系統中,依指定長度分割中英夾雜的字串
轉換或判斷字串內容為不同型態的變數
將字串轉成日期變數
- 請見 => CONVERT_DATE_TO_INTERNAL
判斷字串是否可轉為數字
- 用例外的方式來判斷
DATA: l_int TYPE i.
PARAMETERS: p_str TYPE string.
*-用例外的方式來判斷是否為變數
TRY.
MOVE p_str TO l_int.
MESSAGE i398(00) WITH 'is INT'.
CATCH cx_sy_conversion_no_number cx_sy_conversion_overflow.
MESSAGE i398(00) WITH 'not INT'.
ENDTRY.