🔁 SHIFT 함수란?
SHIFT는 문자열의 문자를 한 칸 또는 여러 칸 왼쪽이나 오른쪽으로 밀어서 자리를 옮길 수 있다
공백을 채우거나 삭제할 수도 있고, 특정 구분자 기준으로 단어를 밀 수 있다.
🔤 기본 문법
SHIFT <변수> [BY n PLACES] [LEFT|RIGHT] [CIRCULAR] [UP TO <문자>] [SPACE|ZERO].
✅ 예시 1: 기본 왼쪽 이동
DATA(text) TYPE string VALUE 'ABAP'. SHIFT text. WRITE text.
📌 결과:
BAP
👉 기본은 왼쪽으로 1칸 이동하며, 첫 글자 'A'는 제거됨.
✅ 예시 2: 여러 칸 왼쪽 이동
DATA(text) TYPE string VALUE 'ABAP'. SHIFT text BY 2 PLACES. WRITE text.
📌 결과: AP
👉 왼쪽으로 2칸 이동, 'AB' 제거됨.
✅ 예시 3: 오른쪽 이동 + 공백으로 채움
DATA(text) TYPE string VALUE 'ABAP'. SHIFT text RIGHT BY 2 PLACES. WRITE text.
📌 결과:[][]AB
([][]은 공백을 의미!)
👉 오른쪽으로 2칸 밀고, 앞에 공백 생김.
✅ 예시 4: CIRCULAR – 회전 이동
DATA(text) TYPE string VALUE 'ABAP'. SHIFT text CIRCULAR BY 1 PLACES. WRITE text.
📌 결과: BAPA
👉 한 칸 왼쪽으로 밀되, 밀려난 'A'는 맨 뒤로 붙음! 즉, 회전 이동.
✅ 예시 5: 특정 문자까지 이동 (UP TO)
DATA(text) TYPE string VALUE '123-456-789'. SHIFT text UP TO '-'. WRITE text.
📌 결과:
-456-789
👉 -까지 왼쪽으로 이동, 그리고 그 앞의 문자 삭제!
추가 옵션 요약
BY n PLACES | n칸 만큼 이동 (기본: 1) |
LEFT / RIGHT | 왼쪽 / 오른쪽으로 이동 |
CIRCULAR | 순환 회전 |
UP TO c | c 문자까지 밀기 |
SPACE / ZERO | 공백 / 0으로 채우기 (RIGHT에서 사용) |
🎯 예시 연습문제
DATA(txt) = 'Hello World'. SHIFT txt BY 6 PLACES. WRITE txt. " 결과는?
World