在SAP ABAP环境下编写程序实现整数数字反转输出
SAP ABAP程序:整数数字反转实现
需求概述
输入一个整数,输出其数字顺序反转后的结果。例如:
- 输入
23987446,输出64478932 - 输入
123456789,输出987654321
方案1:基于字符串操作(简单直观)
利用ABAP内置的REVERSE函数直接处理字符串,代码简洁,适合绝大多数场景,同时可保留前导零的字符串形式。
完整代码
REPORT z_integer_reverse_string. * 定义输入参数,必填且带默认值 PARAMETERS: p_input TYPE i OBLIGATORY DEFAULT 23987446. DATA: lv_input_str TYPE string, lv_reversed_str TYPE string, lv_reversed_num TYPE i. * 将输入整数转换为字符串格式 lv_input_str = |{ p_input }|. * 调用ABAP内置反转函数处理字符串 lv_reversed_str = reverse( lv_input_str ). * 转换回整数类型(自动去除前导零) lv_reversed_num = lv_reversed_str. * 输出结果,同时展示两种格式 WRITE: / '输入整数:', p_input, / '反转后整数:', lv_reversed_num, / '反转后字符串(含前导零):', lv_reversed_str.
运行说明
- 执行程序后,在输入框中填入目标整数
- 点击执行,即可看到反转后的整数结果及带前导零的字符串版本(例如输入
100,整数结果为1,字符串结果为001)
方案2:基于数学运算(纯数字处理)
通过循环取模、累加的方式实现反转,适合需要避免字符串操作的场景,同时支持负数处理。
完整代码
REPORT z_integer_reverse_math. PARAMETERS: p_input TYPE i OBLIGATORY DEFAULT 23987446. DATA: lv_temp TYPE i VALUE p_input, lv_reversed TYPE i VALUE 0, lv_remainder TYPE i. * 先处理负数,取绝对值进行反转 IF lv_temp < 0. lv_temp = -lv_temp. ENDIF. * 循环提取最后一位数字并构建反转数 WHILE lv_temp > 0. lv_remainder = lv_temp MOD 10. " 取最后一位数字 lv_reversed = lv_reversed * 10 + lv_remainder. " 累加构建反转数 lv_temp = lv_temp DIV 10. " 移除最后一位数字 ENDWHILE. * 还原负数符号 IF p_input < 0. lv_reversed = -lv_reversed. ENDIF. WRITE: / '输入整数:', p_input, / '反转后整数:', lv_reversed.
注意事项
- 若输入整数超出ABAP
i类型的范围(-2147483648 至 2147483647),需将变量类型改为p DECIMALS 0以避免溢出 - 此方法会自动去除前导零,若需保留需额外处理
内容的提问来源于stack exchange,提问作者Anish Kumar
相关产品推荐
相关产品推荐

