The ABAP language offers so many features that you easily can lose track of them all. A recent discussion showed that. The task is some operation on a character string and the question was how to achieve that. The first answer was to do it with regular expressions, and I guess I would have answered the same. Regular expression are general and powerful and you can achieve almost anything you want in finding and replacing characters in strings. They can be easily tested with programs DEMO_REGEX and DEMO_REGEX_TOY. Because of that one can easily forget that there are other more simple and performant means for accomplishing many fundamental tasks. Another pointed that out: There is a wealth of built-in functions available in ABAP, especially for string processing, that can be used for many requirements. Those functions can be nested and can use expression (especially string and regular expressions) as operands. If you do not want to break a butterfly on a wheel, built-in functions can help you in many cases to achieve your results.
As a reminder I copied the overview of the built-in functions from the documentation below. Check also the examples in the respective sections of the documentation.
Built-in Functions – Overview
- A processing function performs general processing and returns a return code according to its purpose.
- A description function determines a property of an argument and usually returns this property as a numeric value.
Furthermore, there are logical functions that either are boolean functions that evaluate a logical expression or predicate functions that return a truth value.
|boolc, boolx, xsdbool||Boolean functions|
|contains, contains_any_of, contains_any_not_of||Predicate functions for strings|
|matches||Predicate function for strings|
|line_exists||Predicate function for internal tables|
|abs, ceil, floor, frac, sign, trunc||General numeric functions|
|ipow||Integer power function|
|nmax, nmin||Numeric extremum functions|
|acos, asin, atan, cos, sin, tan, cosh, sinh, tanh, exp, log, log10, sqrt||Floating point functions|
|round, rescale||Rounding functions|
|charlen, dbmaxlen, numofchar, strlen||Length functions|
|cmax, cmin||Character-like extremum value functions|
|count, count_any_of, count_any_not_of||Search functions|
|find, find_end, find_any_of, find_any_not_of||Search functions|
|shift_left, shift_right||Shift functions|
|substring, substring_after, substring_from, substring_before, substring_to||Substring functions|
|to_upper, to_lower, to_mixed, from_mixed||Case functions|