🔁 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

+ Recent posts