当然,这个问题已经被讨论了成千上万次(1, 2, 3),但除了这个丑陋的片段之外,没有提供任何东西。
有没有优雅的一行代码可以完成这个任务?目前我找到的唯一显著的方法是:
然而,它需要你知道最后一个字符是什么(TRAILING掩码),而且掩码不支持正则表达式或通配符。或者我错了吗?
这种变体对我来说出了一些问题。
也许有人知道更漂亮的语法来一行完成这个任务吗?ABAP 7.40或7.50中有什么新的东西吗?
data: str type string value 'abcd#',
len type i.
len = strlen( str ).
len = len - 1.
str = str+0(len).
有没有优雅的一行代码可以完成这个任务?目前我找到的唯一显著的方法是:
SHIFT str RIGHT DELETING TRAILING `,`.
然而,它需要你知道最后一个字符是什么(TRAILING掩码),而且掩码不支持正则表达式或通配符。或者我错了吗?
这种变体对我来说出了一些问题。
SHIFT string RIGHT BY 1.
也许有人知道更漂亮的语法来一行完成这个任务吗?ABAP 7.40或7.50中有什么新的东西吗?
l_str
中的字符数越多,shift
越慢,而substring
的速度不变。 - Sandra Rossi