Splitting Strings in SAP ABAP
In SAP ABAP, you can split a string into multiple parts using different methods depending on delimiter type, use case, and ABAP version.
1. Using SPLIT
Statement (Basic Splitting)
The SPLIT
statement is used to split a string based on a given delimiter into an internal table.
DATA: lv_string TYPE string VALUE 'ABAP,SAP,HANA', lt_parts TYPE TABLE OF string.
SPLIT lv_string AT ',' INTO TABLE lt_parts.
LOOP AT lt_parts INTO DATA(lv_part). WRITE: / lv_part.ENDLOOP.
Output:
ABAPSAPHANA
- Splits the string at
,
and stores parts inlt_parts
. - Suitable when dealing with comma-separated values (CSV), spaces, or other delimiters.
2. Using SPLIT
Into Individual Variables
If you want to split into specific variables instead of an internal table:
DATA: lv_string TYPE string VALUE 'ABAP-SAP-HANA', lv_part1 TYPE string, lv_part2 TYPE string, lv_part3 TYPE string.
SPLIT lv_string AT '-' INTO lv_part1 lv_part2 lv_part3.
WRITE: lv_part1, lv_part2, lv_part3. " Output: ABAP SAP HANA
- Each substring is assigned to a separate variable.
- If the string has fewer parts than variables, the extra variables remain empty.
- If the string has more parts than variables, extra parts are ignored.
3. Handling Extra Delimiters (Avoiding Empty Entries)
If the string contains consecutive delimiters, empty entries will be created.
DATA: lv_string TYPE string VALUE 'ABAP,,SAP,HANA', lt_parts TYPE TABLE OF string.
SPLIT lv_string AT ',' INTO TABLE lt_parts.
LOOP AT lt_parts INTO DATA(lv_part). WRITE: / lv_part.ENDLOOP.
Output:
ABAP
SAPHANA
- Empty line appears because of
,,
(double comma). - If needed, remove empty entries manually:
DELETE lt_parts WHERE table_line IS INITIAL.
4. Splitting String Based on Spaces
You can split a string at spaces (default behavior):
DATA: lv_string TYPE string VALUE 'ABAP SAP HANA', lt_parts TYPE TABLE OF string.
SPLIT lv_string AT space INTO TABLE lt_parts.
LOOP AT lt_parts INTO DATA(lv_part). WRITE: / lv_part.ENDLOOP.
5. Using CONVERT STRING TO TABLE
(ABAP 7.40+)
If working with structured text (like JSON, XML), convert it into an internal table.
DATA: lv_string TYPE string VALUE 'ABAP|SAP|HANA', lt_parts TYPE TABLE OF string.
CALL FUNCTION 'SCMS_STRING_TO_FTEXT' EXPORTING text = lv_string delim = '|' TABLES text_tab = lt_parts.
LOOP AT lt_parts INTO DATA(lv_part). WRITE: / lv_part.ENDLOOP.
6. Splitting Using Regular Expressions (REGEX
) (ABAP 7.40+)
For more complex cases, such as splitting on multiple delimiters, use regex.
DATA: lv_string TYPE string VALUE 'ABAP, SAP | HANA', lt_parts TYPE TABLE OF string.
SPLIT lv_string AT REGEX '[,| ]+' INTO TABLE lt_parts.
LOOP AT lt_parts INTO DATA(lv_part). WRITE: / lv_part.ENDLOOP.
Explanation:
[,| ]+
matches one or more occurrences of,
,|
, or space.- Multiple delimiters are handled together.
- Useful for data cleaning where inconsistent delimiters are used.
7. Extracting a Fixed Number of Words
If you want to extract only the first N words from a sentence:
DATA: lv_string TYPE string VALUE 'SAP ABAP HANA S4', lv_first TYPE string, lv_second TYPE string.
SPLIT lv_string AT space INTO lv_first lv_second.
WRITE: lv_first, lv_second. " Output: SAP ABAP
Best Practices for Splitting Strings
Method | Best For | ABAP Version |
---|---|---|
SPLIT ... INTO TABLE | Store split values in an internal table | All Versions |
SPLIT ... INTO var1 var2 var3 | Store parts in separate variables | All Versions |
DELETE lt_table WHERE table_line IS INITIAL. | Remove empty entries | All Versions |
REGEX | Split using multiple delimiters | ABAP 7.40+ |
CALL FUNCTION 'SCMS_STRING_TO_FTEXT' | Convert structured data like XML/JSON | All Versions |
🚀 Conclusion
- Use
SPLIT
for basic string splitting. - Use
SPLIT ... INTO TABLE
when handling dynamic parts. - Use
REGEX
for advanced pattern-based splitting. - Remove empty values if needed after splitting.