String에 있는 함수
함수 | 기능 | 예시 |
FIND | 문자열 찾기 | FIND 'ABAP' IN lv_text. |
REPLACE | 문자열 바꾸기 | REPLACE 'A' WITH 'B' INTO lv. |
TRANSLATE | 대소문자 변환 | TRANSLATE lv TO LOWER CASE. |
SHIFT | 왼쪽/오른쪽 밀기 | SHIFT lv LEFT DELETING LEADING space. |
CONDENSE | 공백 줄이기 | CONDENSE lv. |
OVERLAY | 문자 덮어쓰기 | OVERLAY lv WITH '***'. |
CONCATENATE | 연결 | CONCATENATE a b INTO c. |
SPLIT | 나누기 | SPLIT lv AT ',' INTO x y. |
1. FIND – 문자열 찾기
- 문자열 안에 특정 단어가 존재하는지 확인
기본 문법
FIND '찾을문자' IN lv_text.
예제
DATA : gv_str type string,
gv_chr(4) type c.
gv_str = 'ABAP'.
gv_chr = 'B'.
find gv_chr in gv_str.
if st_subrc eq 0.
write 'B FOUND'.
endif.
=> B FOUND 출력!
위치를 알고 싶을 때 / 기본 문법
FIND 'abap' IN lv_text match offset lv_pos.
예제
DATA: lv_text TYPE string VALUE 'I love ABAP programming.',
lv_pos TYPE i.
FIND 'ABAP' IN lv_text MATCH OFFSET lv_pos.
WRITE: / 'ABAP 위치:', lv_pos.
결과 : ABAP 위치 : 7 (7번째 인덱스부터 시작)
2. REPLACE – 문자열 교체
문자열 안의 특정 단어를 다른 단어로 바꿈
기본 문법
REPLACE '기존문자' WITH '새문자' INTO lv_text.
예시
DATA lv_text TYPE string VALUE 'I love ABAP!'.
REPLACE 'love' WITH 'like' INTO lv_text.
WRITE: / lv_text. " 결과: I like ABAP!
예시2.
gv_str = 'ABAP'.
gc_chr = 'BBAP'.
REPLACE 'ABAP' WITH gv_chr INTO gv_str.
WRITE / gv_str.
=> 결과 : BBAP
3. TRANSLATE – 대소문자 변환
대문자 ↔ 소문자 변환
문법
TRANSLATE lv_text TO UPPER CASE. " 대문자
TRANSLATE lv_text TO LOWER CASE. " 소문자
DATA lv_text TYPE string VALUE 'abap is great'.
TRANSLATE lv_text TO UPPER CASE.
WRITE: / lv_text. " 결과: ABAP IS GREAT
4. SHIFT – 문자 밀기
문자열을 왼쪽/오른쪽으로 밀면서 공백 제거 가능
문법
SHIFT lv_text LEFT DELETING LEADING space.
예시
DATA lv_text TYPE string VALUE ' ABAP! '.
SHIFT lv_text LEFT DELETING LEADING space.
WRITE: / lv_text. " 결과: 'ABAP! '
예시2 기본 shift 문법 (왼쪽이동)
gv_str = 'ABAP'.
SHIFT gv_str.
WRITE / gv_str. " 결과 'BAP'
- 기본으로 shift문법은 왼쪽으로 이동이다.
구문 | 설명 |
SHIFT lv LEFT | 왼쪽으로 한 글자 밀기 (기본) |
SHIFT lv RIGHT | 오른쪽으로 한 글자 밀기 |
SHIFT lv LEFT DELETING LEADING space | 앞쪽 공백 전부 제거 |
SHIFT lv RIGHT CIRCULAR | 순환 이동 (맨 끝 글자가 앞으로 옴) |
예시: 순환 이동
DATA lv TYPE string VALUE 'ABAP'.
SHIFT lv RIGHT CIRCULAR.
WRITE: / lv. " 결과: PABA
5. CONDENSE – 공백 압축
여러 공백을 하나로 줄이기, 양끝 공백도 제거 가능
문법
CONDENSE lv_text. " 기본: 중간 공백 압축 + 앞뒤 제거
CONDENSE lv_text NO-GAPS. " 모든 공백 제거
예시
DATA lv_text TYPE string VALUE ' ABAP IS FUN '.
CONDENSE lv_text.
WRITE: / lv_text. " 결과: 'ABAP IS FUN'
=> 중간 공백 압축 + 앞 뒤 제거가 된다.
=> `condense lv_tex2 no-gaps1` 하면 공백이 다 제거된다.
6. OVERLAY – 문자 겹쳐쓰기
기존 문자열을 다른 문자로 덮어쓰기
문법
OVERLAY lv_target WITH '****'.
DATA lv_text TYPE string VALUE 'ABAP'.
OVERLAY lv_text WITH '####'.
WRITE: / lv_text. " 결과: ####
gv_str = ' B . p '.
gv_chr = 'AAAA'.
overlay gv_str with gv_chr.
write / gv_str.
7. CONCATENATE – 문자열 연결
여러 문자열을 하나로 합침
문법
CONCATENATE lv1 lv2 INTO lv_result [SEPARATED BY space].
예시
DATA: lv1 TYPE string VALUE 'Hello', lv2 TYPE string VALUE 'World', lv_result TYPE string.
CONCATENATE lv1 lv2 INTO lv_result SEPARATED BY space.
WRITE: / lv_result. " 결과: Hello World
gv_str 변수에 gv_chr를 합친다.
8. SPLIT – 문자열 나누기
구분자를 기준으로 문자열 분해
문법
SPLIT lv_text AT ',' INTO lv_a lv_b.
예시
DATA: lv_text TYPE string VALUE 'ABAP,PROGRAMMING', lv_a TYPE string, lv_b TYPE string.
SPLIT lv_text AT ',' INTO lv_a lv_b.
WRITE: / lv_a, / lv_b. " 결과: ABAP / PROGRAMMING
* 연습하기*
'Hello_World_42' → 'Hello', 'World', '42'로 나누고,
숫자 부분은 숫자로 바꿔서 2 더한 결과 출력하기

=> welcome to abap world 만들기
DATA lv_text TYPE string VALUE '##HELLO_world42##'.
REPLACE ALL OCCURRENCES OF '##' IN lv_text WITH ''.
REPLACE ALL OCCURRENCES OF '_' IN lv_text WITH ' '.
REPLACE ALL OCCURRENCES OF REGEX '[0-9]' IN lv_text WITH ''.
TRANSLATE lv_text TO LOWER CASE.
CONDENSE lv_text.
WRITE: / lv_text. " 결과: hello world
출력 => hello world ####
'SAP' 카테고리의 다른 글
easy abap 06. abap dictionary table, view, structure, move, move-corresponding, 구조체의 산술연산 (0) | 2025.05.07 |
---|---|
easy abap 05.구조체 structure타입 선언 (0) | 2025.05.07 |
easy abap 03. string vs c (0) | 2025.05.07 |
easy abap 02. 변수에 값 넣는 방법 (0) | 2025.05.07 |
easy abap 01. 네이밍 규칙 (0) | 2025.05.07 |