簡體   English   中英

從字符串中刪除/提取最后一個字符

[英]Delete/extract last character from the string

當然,問題被討論了一千次( 123 ),但除了這個丑陋的片段外沒有提供任何東西:

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 中有什么新內容嗎?

SUBSTRING 獲取字符串的最后一個字符:

DATA: str TYPE string VALUE 'abcd#'.
str = substring( val = str off = strlen( str ) - 1 len = 1 ).

海峽將是 '#'

要刪除字符串的最后一個字符(如您的示例):

str = substring( val = str off = 0 len = strlen( str ) - 1 ).

在您的 ABAP 編輯器中輸入 SUBSTRING 並點擊 F1,還有一些變體(substring_after、substring_before 等)

我過去用過的一個技巧:

DATA l_str TYPE string VALUE `abcd#`.

SHIFT l_str RIGHT by 1 PLACES CIRCULAR. " move last char to start, read it from l_str(1)
l_str = l_str+1. " remove it.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM