ABAP对字符串有很多隐形的操作,有时更方便程序员,有时又比较容易使人困惑。
比如在比较字符串的值时,ABAP会自动忽视有效字符后面的空格,而如果在字符前面有空格,则会影响比较的结果。
比如: ‘X’ 和 ‘X__’ 比较的结果是相等;而’X’和’__X’比较的结果则是不相等。 (这里下划线__代表空格)
运行下面的程序可以看到效果:
DATA: l_string1 TYPE string,
l_string2 TYPE string,
l_string3 TYPE string.
l_string1 = ‘X’. “No space
l_string2 = ‘X ‘. “Space after X
l_string3 = ‘ X’. “Space before X
IF l_string1 EQ l_string2.
WRITE: / ‘String 1 and String 2 are identical.’.
ELSE.
WRITE: / ‘String 1 and String 2 are NOT identical.’.
ENDIF.
IF l_string1 EQ l_string3.
WRITE: / ‘String 1 and String 3 are identical.’.
ELSE.
WRITE: / ‘String 1 and String 3 are NOT identical.’.
ENDIF.
运行结果是输出:
String 1 and String 2 are identical.
String 1 and String 3 are NOT identical.