오늘은 SAP ABAP에서 문자열의 대소문자 등을 변경하는 TRANSLATE에 대해서 정리해 보았습니다.
TRANSLATE는 ABAP 문자열 연산에 사용되며, 주로 주어진 문자열을 대문자 혹은 소문자로 변경할 때 사용됩니다.
TO UPPER CASE : 대문자 변경
TO UPPER CASE 키워드를 사용하면 주어진 문자열을 모두 대문자로 변경합니다.
DATA : LV_TEXT1 TYPE STRING.
LV_TEXT1 = 'MyData'.
TRANSLATE LV_TEXT1 TO UPPER CASE.
모든 주어진 문자열이 대문자로 변환되어 아래와 같이 대체됩니다.
MYDATA
TO LOWER CASE : 소문자 변경
TO LOWER CASE 키워드를 사용하면 주어준 스트링을 모두 소문자로 변경합니다.
" TO LOWER CASE
DATA : LV_TEXT2 TYPE STRING.
LV_TEXT2 = 'MyData'.
TRANSLATE LV_TEXT2 TO LOWER CASE.
모든 주어진 문자열이 소문자로 변환되어 아래와 같이 대체되게 됩니다.
mydata
TRANSLATE와 비슷하게, 문자열의 대체 변환 과 관련한 ABAP REPLACE 의 상세한 내용은 아래의 내용을 참고할 수 있습니다.
USING : MASK 패턴 사용
ABAP TRANSLATE 에서는, USING 키워드를 사용해서 Mask 패턴을 사용할 수 있습니다.
DATA TEXT3 TYPE STRING.
TEXT3 = `ZxwZdbarb`.
TRANSLATE TEXT3 USING 'ZBxywt'.
위의 MASK 패턴은 Z->B // x->y //w->t 입니다. 이를 해석하면,
- mask의 첫 문자는 ‘Z’입니다. Z 다음의 글자 ‘B’가 변환될 캐릭터이며, text 내의 모든 ‘Z’의 발생을 찾아서 이를 ‘B’로 바꿉니다.
- 다음 마스크는 “x” 이며 다음 글자인 “y”로 변환됩니다.
- 마지막 마스크는 “w” 이며 다음 글자인 “t”로 변환이 됩니다.
위의 MASK 패턴 규칙에 따라 아래와 같이 변경이 됩니다.
BytBdbarb
이상으로 ABAP에서 문자열 대소문자를 변경하고자 할 때 주로 사용하는 TRANSLATE에 대해서 알아보았습니다.
자주 사용하는 TRANSLATE의 내용을 요약하면 다음과 같습니다.
- TO UPPER CASE 키워드를 통해 주어진 문자열을 대문자로 변경할 수 있습니다.
- TO LOWER CASE 키워드를 사용하면 주어진 문자열을 모두 소문자로 변경 가능합니다.
- USING 키워드를 통해 MASK 패턴 변환을 처리할 수 있습니다.
좀 더 상세한 내용은 sap 공식 문서 TRANSLATE 를 참고해 보시기 바랍니다.
함께 보면 좋은 글
SAP ABAP SY 시스템 변수 정리, SY-SUBRC 등
SAP ABAP FIND 사용법 String 패턴 검색 예제 모음