How to compare two strings in ABAP

In ABAP, you can compare two strings using various comparison operators and functions. Here are a few ways How to compare two strings in ABAP?

1. CO (Contains Only):

c1 contains only characters in the string c2.

The comparison takes into account the full length of c1,
including blanks at the end.
If the result of the comparison is negative, the system
field SY-FDPOS contains the offset of the first character in
c1 which is not also in c2.
If the result of the comparison is positive, the system
field SY-FDPOS contains the length of c1.
The comparison is case-sensitive.

Examples:

‘ABCDE’ CO ‘XYZ’ is false; SY-FDPOS = 0.
‘ABCDE’ CO ‘AB’ is false; SY-FDPOS = 2.
‘ABCDE’ CO ‘ABCDE’ is true; SY-FDPOS = 5.

CN (Contains Not only):

“c1 CN c2” is equivalent to “NOT ( c1 CO c2 )”.

c1 contains not only characters from c2.

If the result of the comparison is positive, the system
field SY-FDPOS contains the offset of the first character in
c1 which is not also in c2.
If the result of the comparison is negative, the system
field SY-FDPOS contains the length of c1.

CA (Contains Any):

c1 contains at least one character from the string c2.

The comparison takes into account the full length of c1,
including blanks at the end.
If the result of the comparison is positive, the system
field SY-FDPOS contains the offset of the first character in
c1 which is also in c2.
If the result of the comparison is negative, the system
field SY-FDPOS contains the length of c1.
The comparison is case-sensitive.

Examples:

‘ABCDE’ CA ‘CY’ is true; SY-FDPOS = 2.
‘ABCDE’ CA ‘XY’ is false; SY-FDPOS = 5.

NA (contains Not Any):

“c1 NA c2” is equivalent to “NOT ( c1 CA c2 )”.

c1 contains no characters from c2.

SY-FDPOS is set accordingly.

CS (Contains String):

c1 contains the character string c2.

Trailing blanks in c1 and c2 are ignored.
If the result of the comparison is positive, the system
field SY-FDPOS contains the offset of the first character of
c2 in c1.
If the result of the comparison is negative, the system
field SY-FDPOS contains the length of c1.
The comparison is not case-sensitive.

Examples:

‘ABCDE’ CS ‘CD’ is true; SY-FDPOS = 2.
‘ABCDE’ CS ‘XY’ is false; SY-FDPOS = 5.
‘ABAAA’ CS ‘AB ‘ is true; SY-FDPOS = 0.
‘ ABC’ CS ‘ AB’ is true; SY-FDPOS = 1.
‘ABC DEF’ CS ‘ ‘ is true; but: SY-FDPOS = 0,
since ‘ ‘ is interpreted as a trailing blank and is thus
ignored.

NS (contains No String):

“c1 NS c2” is equivalent to “NOT ( c1 CS c2 )”.

c1 does not contain c2.

SY-FDPOS is set accordingly.

CP (Contains Pattern):

c1 matches c2.

The pattern c2 can contain ordinary characters and
wildcards.
‘*’ stands for any character string and ‘+’ denotes any
character.
If the result of the comparison is positive, the system
field SY-FDPOS contains the offset of the first character of
c2 in c1. The wildcard character ‘*’ at the beginning of the
pattern c2 is ignored when determining the value of
SY-FDPOS.
If the result of the comparison is negative, the system
field SY-FDPOS contains the length of c1.

Examples:

‘ABCDE’ CP ‘*CD*’ is true; SY-FDPOS = 2.
‘ABCDE’ CP ‘*CD’ is false; SY-FDPOS = 5.
‘ABCDE’ CP ‘++CD+’ is true; SY-FDPOS = 0.
‘ABCDE’ CP ‘+CD*’ is false; SY-FDPOS = 5.
‘ABCDE’ CP ‘*B*D*’ is true; SY-FDPOS = 1.

The character ‘#’ has a special meaning. It serves as an
escape symbol and indicates that the very next character
should be compared “exactly”.

More about How to compare two strings in ABAP?
 

In ABAP, you can compare two strings using various comparison operators and functions. Here are a few ways to compare strings in ABAP:

Using the IF statement: You can use the IF statement to compare two strings and perform specific actions based on the result. Here’s an example:

DATA: string1 TYPE string,
string2 TYPE string.

string1 = ‘Hello’.
string2 = ‘World’.

IF string1 = string2.
WRITE ‘The strings are equal’.
ELSE.
WRITE ‘The strings are not equal’.
ENDIF.

Using the CONDENSE statement: The CONDENSE statement removes leading and trailing spaces from a string, allowing you to compare strings without considering whitespace differences. Here’s an example:

DATA: string1 TYPE string,
string2 TYPE string.

string1 = ‘ Hello ‘.
string2 = ‘Hello’.

CONDENSE string1.
IF string1 = string2.
WRITE ‘The strings are equal’.
ELSE.
WRITE ‘The strings are not equal’.
ENDIF.

Using the STRCMP function: The STRCMP function compares two strings and returns a value indicating their relative order. If the function returns 0, the strings are equal. If it returns a negative value, the first string is less than the second. If it returns a positive value, the first string is greater than the second. Here’s an example:

DATA: string1 TYPE string,
string2 TYPE string,
result TYPE i.

string1 = ‘Hello’.
string2 = ‘World’.

result = STRCMP( string1, string2 ).

IF result = 0.
WRITE ‘The strings are equal’.
ELSEIF result < 0.
WRITE ‘String1 is less than String2’.
ELSE.
WRITE ‘String1 is greater than String2’.
ENDIF.

These are just a few examples of how you can compare strings in ABAP. The approach you choose depends on your specific requirements and the logic you want to implement.

How to compare two strings in ABAP-Explained Well 

Leave a comment