abap 去前导0
时间: 2023-09-10 09:07:36 浏览: 132
ABAP中可以使用函数 `CONDENSE` 来去除字符串前导的空格和零。这个函数会移除字符串前面的所有空格和零,但是保留字符串中间和后面的空格和零。
示例代码如下:
```
DATA: lv_string TYPE string VALUE '0000123'.
CONDENSE lv_string NO-GAPS.
WRITE lv_string. " 输出 123
```
在上面的代码中,我们定义了一个字符串变量 `lv_string`,它的值为 `'0000123'`。然后我们使用 `CONDENSE` 函数去掉了前导的零,最终输出结果为 `'123'`。需要注意的是,我们使用了 `NO-GAPS` 参数来保留字符串中间和后面的空格和零。如果不加这个参数,函数会把所有的空格和零都去掉。
相关问题
ABAP 去掉前导零
ABAP (Advanced Business Application Programming) 是一种高级编程语言,主要用于SAP软件平台的开发。在ABAP中去掉字符串前导零的操作,可以通过内置的字符串处理函数来实现,如 `REPLACE` 或者使用 `CL_ABAP_CHAR_BUFFER` 类中的方法。下面是使用 `REPLACE` 函数去除前导零的示例:
```abap
DATA: lv_string TYPE string.
lv_string = '0001234HelloWorld'.
" 使用 REPLACE 函数去掉前导零
REPLACE #( '0' ) IN lv_string
TRANSPORTING NOCHARS.
WRITE: lv_string.
```
在上面的代码中,`REPLACE #( '0' ) IN lv_string` 表示将变量 `lv_string` 中所有的 '0' 字符替换为空,`TRANSPORTING NOCHARS` 表示替换时不移动字符,只更新字符。
另一种方法是使用 `CL_ABAP_CHAR_BUFFER` 类,该类提供了更灵活的字符串操作方法:
```abap
DATA: lv_string TYPE string,
lv_buffer TYPE cl_abap_char_buffer.
lv_string = '0001234HelloWorld'.
" 创建 CL_ABAP_CHAR_BUFFER 实例
lv_buffer = cl_abap_char_buffer=>create( lv_string ).
" 去掉前导零
lv_buffer->remove_leading_zeros( ).
" 获取处理后的字符串
lv_string = lv_buffer->get_string( ).
WRITE: lv_string.
```
在这段代码中,`cl_abap_char_buffer=>create( lv_string )` 创建了一个 `CL_ABAP_CHAR_BUFFER` 类的实例,然后通过调用 `remove_leading_zeros( )` 方法去除前导零,最后通过 `get_string( )` 方法获取处理后的字符串。
abap select时去前导零
在ABAP的SELECT语句中去掉返回结果中的前导零有多种方法。其中一种常见的方法是使用LTRIM函数。你可以在SELECT语句中使用LTRIM函数来去掉返回结果中字段的前导零。例如:
SELECT LTRIM(MATNR, '0') AS MATNR_NO_ZEROS
FROM OBJK
INTO TABLE @DATA(LT_OBJK).
这样,返回结果中的MATNR字段就会去掉前导零。
另一种常见的方法是使用CONVERSION_EXIT_MATN1_OUTPUT函数。你可以在程序中调用这个函数来去掉MATNR字段的前导零。例如:
DATA: lv_matnr TYPE matnr.
lv_matnr = '000000000012345'.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = lv_matnr
IMPORTING
output = lv_matnr.
在调用函数后,lv_matnr变量的值就会去掉前导零。
阅读全文