SAP-ABAP-去除空格和数字校验
在 ABAP 里,去除字符串中的空格可以根据不同的需求(如去除前导空格、尾随空格、所有空格)使用不同的函数或方法。以下为你详细介绍几种常见的去除空格的方式。
1. 去除前导空格
使用
CONDENSE 语句结合 NO-GAPS 选项可以去除字符串的前导空格。示例代码如下:REPORT z_remove_leading_spaces. DATA: lv_string TYPE string VALUE ' Hello World'. CONDENSE lv_string NO-GAPS. WRITE: / '去除前导空格后的字符串:', lv_string.
2. 去除尾随空格
同样可以使用
CONDENSE 语句,不过这次结合 TRAILING 选项来去除字符串的尾随空格。示例代码如下:REPORT z_remove_trailing_spaces. DATA: lv_string TYPE string VALUE 'Hello World '. CONDENSE lv_string TRAILING. WRITE: / '去除尾随空格后的字符串:', lv_string.
3. 去除所有空格
可以使用
REPLACE 函数将字符串中的所有空格替换为空字符串,从而达到去除所有空格的目的。示例代码如下:REPORT z_remove_all_spaces. DATA: lv_string TYPE string VALUE ' Hello World '. REPLACE ALL OCCURRENCES OF ' ' IN lv_string WITH ''. WRITE: / '去除所有空格后的字符串:', lv_string.
4. 使用正则表达式去除所有空格
如果需要更复杂的匹配和替换操作,可以使用正则表达式。ABAP 从 7.02/7.20 版本开始支持正则表达式相关的函数模块。
代码解释
- 定义要处理的字符串
lv_string、正则表达式模式lv_pattern(\s表示匹配任何空白字符)和用于存储结果的变量lv_result。 - 调用
REGER_REPLACE函数模块,将字符串中匹配正则表达式的部分替换为空字符串。 - 输出使用正则表达式去除所有空格后的字符串。
REPORT z_remove_all_spaces_regex. DATA: lv_string TYPE string VALUE ' Hello World ', lv_pattern TYPE string VALUE '\s', lv_result TYPE string. CALL FUNCTION 'REGER_REPLACE' EXPORTING text = lv_string pattern = lv_pattern replacement = '' IMPORTING result = lv_result. WRITE: / '使用正则表达式去除所有空格后的字符串:', lv_result.
5. 使用正则表达式校验小数
代码如下
IF CL_ABAP_MATCHER=>MATCHES( PATTERN = '^(-?[1-9]\d*(\.\d*[1-9])?)|(-?0\.\d*[1-9])$' TEXT = LS_DATA-ZGLDW ) = ABAP_TRUE. WRITE:/'是数字'。 ELSE. LS_DATA-ZGLDW = 0. WRITE:/'不是数字'。 ENDIF.

浙公网安备 33010602011771号