SAP ABAP字符和字符串变量隐式转换的一些规则-阿里云开发者社区

开发者社区> 开发者小助手-bz4> 正文

SAP ABAP字符和字符串变量隐式转换的一些规则

简介: SAP ABAP字符和字符串变量隐式转换的一些规则
+关注继续查看

SAP ABAP字符和字符串变量隐式转换的一些规则 

DATA: lv_i  TYPE int4 VALUE 1,

     lv_s  TYPE string,

     lv_s2 TYPE string VALUE '1',

     lv_ss TYPE sstring,

     lv_s3 TYPE char18.

lv_s = lv_i.

lv_ss = lv_i.

lv_s3 = lv_i.

WRITE:/ strlen( lv_s ).  

WRITE:/ strlen( lv_s2 ).

WRITE:/ strlen( lv_ss ).

WRITE:/ strlen( lv_s3 ).Can you get the correct answer without hesitation?


The answer is: 2, 1, 19, 17, which confuses my colleague a lot.

The reason for first result 2:

According to ABAP help, when an integer value is converted to a string value, a blank character is automatically inserted to the last place and this space is also taken into consideration for result length.



image.pngIn debugger we can observe this space in Hexadecimal value view so this is the reason why we get 2 and 1 for first two strlen.image.pngFor the third and fourth test, the variables with char type are used to store the converted value.image.pngAccording to ABAP help, the blank is padded on the left, which could be observed below:image.pngAlthough we can still observe the existence of trailing space character in debugger, why for these two variables, the last character is not considered by strlen?


Again the answer is in help, simply because char data object with fixed length will ignore it but String type will count.


image.png


So my suggestion to my new colleagues when they meet with “weird” behavior in ABAP: always check with ABAP help first.


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9496 0
Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化
Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说那么的被动,我学习的是Python2.
1041 0
Kotlin学习(二)—— 基本语法,函数,变量,字符串模板,条件表达式,null,类型检测,for,while,when,区间,集合
一.基本语法 Kotlin的很多概念跟JAVA是有类似的,所以我应该不会像我的JAVA之旅一样那么的详细,但是不用担心,你会看的很明白的,我也是根据官方的文档来学习的 我们在IDEA中创建一个项目Kotlin02 1.
1363 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13186 0
2315
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载