关键字Split通过分隔符sep对dobj进行分割,结果可以存储到单独的目标字段,也可以存储到内表的行中。默认采用 IN CHARACTER MODE 模式对dobj进行处理。
基本语法:
SPLIT dobj AT sep INTO
{ {result1 result2 ...} | {TABLE result_tab} }
[IN {CHARACTER|BYTE} MODE].
示例一:
DATA lv_str TYPE string VALUE 'steel_rods'.
DATA:
lv_res1 TYPE string, " 类型也可以为类字符
lv_res2 TYPE string.
" 分割的结果 lv_res1 = steel,lv_res2 = rods
SPLIT lv_str AT '_' INTO lv_res1 lv_res2. " IN CHARACTER MODE
示例二:
DATA lv_str TYPE string VALUE 'steel_rods'.
" 使用内联声明的方式,在 IN CHARACTER MODE模式中,默认返回类型为 string
SPLIT lv_str AT '_' INTO DATA(lv_res1) DATA(lv_res2).
" IN CHARACTER MODE. 默认模式
示例三:字符串分割的结果存储到内表。前提是内表是必须不包含辅助表键的标准表。
DATA lv_str TYPE string VALUE 'steel_rods'.
" 不包含辅助表键的标准表
DATA lt_res TYPE TABLE OF string .
" 将分割结果添加到内表
SPLIT lv_str AT '_' INTO TABLE lt_res.
示例四:采用内联声明的方式与示例三等价。
DATA lv_str TYPE string VALUE 'steel_rods'.
" 将分割结果添加到内表
SPLIT lv_str at '_' into table data(lt_res).