当然,问题讨论千倍(1,2,3),但没有提供,只是这个丑陋的代码片段:
data: str type string value 'abcd#',
len type i.
len = strlen( str ).
len = len - 1.
str = str+0(len).
Run Code Online (Sandbox Code Playgroud)
有没有优雅的单行做这个?我到目前为止唯一突出的方法是
SHIFT str RIGHT DELETING TRAILING `,`.
Run Code Online (Sandbox Code Playgroud)
但是,它要求您知道最后一个字符是什么(TRAILING掩码)并且掩码不支持正则表达式或通配符.或者我错了?
由于某些原因,此变体对我不起作用
SHIFT string RIGHT BY 1.
Run Code Online (Sandbox Code Playgroud)
也许有人知道更好的语法在一行中做到这一点?ABAP 7.40或7.50中有什么新东西?
SUBSTRING获取字符串的最后一个字符:
DATA: str TYPE string VALUE 'abcd#'.
str = substring( val = str off = strlen( str ) - 1 len = 1 ).
Run Code Online (Sandbox Code Playgroud)
str将是'#'
要删除字符串的最后一个字符(如示例所示):
str = substring( val = str off = 0 len = strlen( str ) - 1 ).
Run Code Online (Sandbox Code Playgroud)
在ABAP编辑器中键入SUBSTRING并在其上点击F1,还有一些变体(substring_after,substring_before等)