ABAP provides various string operators to manipulate and compare strings efficiently. Below is a categorized list of commonly used string operators in ABAP.
1. Concatenation Operators
Using && (ABAP 7.40 and later)
Concatenates two or more strings.
DATA: lv_string TYPE string.
lv_string = 'Hello' && ' ' && 'ABAP'.WRITE: lv_string. " Output: Hello ABAPUsing CONCATENATE
Concatenates multiple strings with an optional separator.
DATA: lv_string TYPE string.
CONCATENATE 'Hello' 'ABAP' INTO lv_string SEPARATED BY space.WRITE: lv_string. " Output: Hello ABAP2. Comparison Operators
ABAP supports comparison operators to compare strings.
| Operator | Description | Example |
|---|---|---|
= | Equal to | 'ABAP' = 'ABAP' |
< | Less than | 'A' < 'B' |
> | Greater than | 'B' > 'A' |
<> | Not equal | 'ABAP' <> 'JAVA' |
<= | Less than or equal | 'A' <= 'A' |
>= | Greater than or equal | 'B' >= 'A' |
DATA: lv_str1 TYPE string VALUE 'ABAP', lv_str2 TYPE string VALUE 'SAP'.
IF lv_str1 < lv_str2. WRITE: 'ABAP comes before SAP'.ELSE. WRITE: 'SAP comes before ABAP'.ENDIF.3. Substring & Searching Operators
Using FIND (Check if substring exists)
Finds a substring within a string.
DATA: lv_string TYPE string VALUE 'Hello ABAP', lv_substring TYPE string VALUE 'ABAP', lv_pos TYPE i.
FIND lv_substring IN lv_string MATCH OFFSET lv_pos.
IF sy-subrc = 0. WRITE: 'Found at position', lv_pos.ELSE. WRITE: 'Not found'.ENDIF.Using CS (Contains)
Checks if a string contains a substring.
DATA(lv_string) = 'Hello ABAP'.
IF lv_string CS 'ABAP'. WRITE: 'Substring found!'.ENDIF.Using CP (Pattern Matching with Wildcards)
Checks if a string follows a certain pattern.
DATA(lv_string) = 'ABAP123'.
IF lv_string CP 'ABAP*'. WRITE: 'Pattern matches!'.ENDIF.'*'matches multiple characters (ABAP*matchesABAP123).'?'matches a single character (ABAP????matchesABAP1234).
4. Checking String Properties
Check if a String is Numeric (IS NUMERIC)
Checks if a string contains only numbers.
DATA: lv_string TYPE string VALUE '12345'.
IF lv_string IS NUMERIC. WRITE: 'The string is numeric'.ELSE. WRITE: 'Not a numeric string'.ENDIF.Check if String Starts or Ends with a Substring
ABAP does not have a direct STARTSWITH or ENDSWITH function, but you can use FIND or offsets.
Check if String Starts with a Specific Value
DATA(lv_string) = 'ABAP Programming'.
IF lv_string+0(4) = 'ABAP'. WRITE: 'Starts with ABAP!'.ENDIF.Check if String Ends with a Specific Value
DATA(lv_string) = 'SAP ABAP'.
IF lv_string+strlen( lv_string ) - 4(4) = 'ABAP'. WRITE: 'Ends with ABAP!'.ENDIF.5. String Modification Operators
Convert to Uppercase (TRANSLATE ... TO UPPER CASE)
DATA(lv_string) = 'hello abap'.
TRANSLATE lv_string TO UPPER CASE.
WRITE: lv_string. " Output: HELLO ABAPConvert to Lowercase (TRANSLATE ... TO LOWER CASE)
DATA(lv_string) = 'HELLO ABAP'.
TRANSLATE lv_string TO LOWER CASE.
WRITE: lv_string. " Output: hello abapReplace Part of a String (REPLACE)
DATA: lv_string TYPE string VALUE 'I love ABAP'.
REPLACE 'ABAP' WITH 'SAP' INTO lv_string.
WRITE: lv_string. " Output: I love SAP6. String Length Operators
Find the Length of a String (STRLEN)
DATA: lv_string TYPE string VALUE 'ABAP Programming', lv_length TYPE i.
lv_length = STRLEN( lv_string ).
WRITE: 'Length:' lv_length. " Output: Length: 167. Escape and Special Characters
Using Escape Characters in Strings
DATA(lv_string) = 'Hello \'ABAP\' World!'.WRITE: lv_string. " Output: Hello 'ABAP' World!Using Line Breaks (cl_abap_char_utilities=>cr_lf)
DATA: lv_string TYPE string.
lv_string = 'Hello ABAP' && cl_abap_char_utilities=>cr_lf && 'New Line!'.WRITE: / lv_string.Summary of Key String Operators in ABAP
| Operation | Operator / Function | Example |
|---|---|---|
| Concatenation | && / CONCATENATE | 'ABAP' && ' SAP' → 'ABAP SAP' |
| Comparison | = < > <> <= >= | 'ABAP' < 'SAP' |
| Substring Check | FIND / CS / CP | 'ABAP' CS 'BA' |
| String Length | STRLEN( string ) | STRLEN( 'ABAP' ) = 4 |
| Replace Text | REPLACE | REPLACE 'ABAP' WITH 'SAP' |
| Uppercase/Lowercase | TRANSLATE TO UPPER/LOWER | TRANSLATE lv_string TO UPPER CASE |
| Numeric Check | IS NUMERIC | '1234' IS NUMERIC |
| Newline Character | cl_abap_char_utilities=>cr_lf | 'Hello' && cr_lf && 'World' |
🚀 Conclusion
- Concatenation: Use
&&orCONCATENATE. - Comparison: Use
=<><>CSCP. - Substring search: Use
FIND,CS, or offsets. - Modify strings: Use
TRANSLATE,REPLACE, andTO UPPER/LOWER CASE. - Check properties: Use
IS NUMERIC, offsets, andSTRLEN.