ABAP TRANSLATE 문자열 사용법

오늘은 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 의 상세한 내용은 아래의 내용을 참고할 수 있습니다.

SAP 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 대문자, 소문자, USING 검색

이상으로 ABAP에서 문자열 대소문자를 변경하고자 할 때 주로 사용하는 TRANSLATE에 대해서 알아보았습니다.

자주 사용하는 TRANSLATE의 내용을 요약하면 다음과 같습니다.

  • TO UPPER CASE 키워드를 통해 주어진 문자열을 대문자로 변경할 수 있습니다.
  • TO LOWER CASE 키워드를 사용하면 주어진 문자열을 모두 소문자로 변경 가능합니다.
  • USING 키워드를 통해 MASK 패턴 변환을 처리할 수 있습니다.

좀 더 상세한 내용은 sap 공식 문서 TRANSLATE 를 참고해 보시기 바랍니다.

함께 보면 좋은 글

SAP ABAP SY 시스템 변수 정리, SY-SUBRC 등

SAP ABAP FIND 사용법 String 패턴 검색 예제 모음