In SAP ABAP, you can compare strings using different methods depending on the requirement. Here are the common ways:


1. Using IF for Simple Equality Comparison

DATA: lv_str1 TYPE string VALUE 'ABAP',
lv_str2 TYPE string VALUE 'ABAP'.
IF lv_str1 = lv_str2.
WRITE: 'Strings are equal'.
ELSE.
WRITE: 'Strings are not equal'.
ENDIF.

2. Using IF NOT for Inequality

IF lv_str1 <> lv_str2.
WRITE: 'Strings are different'.
ENDIF.

3. Case-Insensitive Comparison (TO UPPER CASE)

DATA: lv_str1 TYPE string VALUE 'ABAP',
lv_str2 TYPE string VALUE 'abap'.
IF to_upper( lv_str1 ) = to_upper( lv_str2 ).
WRITE: 'Strings are equal (case-insensitive)'.
ELSE.
WRITE: 'Strings are different'.
ENDIF.

4. Checking If One String is Greater/Lesser (GT, LT)

DATA: lv_str1 TYPE string VALUE 'ABAP',
lv_str2 TYPE string VALUE 'ABAC'.
IF lv_str1 GT lv_str2.
WRITE: 'lv_str1 is greater'.
ELSEIF lv_str1 LT lv_str2.
WRITE: 'lv_str1 is smaller'.
ELSE.
WRITE: 'Strings are equal'.
ENDIF.

5. Using COMPARE Statement

DATA: lv_str1 TYPE string VALUE 'Hello',
lv_str2 TYPE string VALUE 'hello',
lv_result TYPE i.
COMPARE lv_str1 TO lv_str2.
lv_result = sy-subrc.
IF lv_result = 0.
WRITE: 'Strings are equal'.
ELSE.
WRITE: 'Strings are different'.
ENDIF.

6. Using MATCHES for Pattern Matching (ABAP 7.40+)

DATA: lv_str TYPE string VALUE 'Hello ABAP'.
IF lv_str MATCHES 'Hello.*'.
WRITE: 'String starts with Hello'.
ELSE.
WRITE: 'No match'.
ENDIF.

Best Practices