使用SPLIT关键字将一个字符串按某个分隔符拆分,如果分隔符穿插在字符串中间(即首尾字符均不是分隔符的情况),我们很容易知道拆分后的结果,但如果分隔符恰好位于字符串首或者末尾呢?
如下面的代码所示,在调试窗口中可以看到执行完第6行代码之后内表 lt_split_table 中所有的行项目。
DATA: lv_str TYPE string,
lt_split_table TYPE TABLE OF string.
lv_str = '/This/is/a/test./'.
SPLIT lv_str AT '/' INTO TABLE lt_split_table.
由以上测试的结果可知,当分隔符位于字符串首时,该分隔符左边会拆分出一个空的字符串;当分隔符位于字符串末尾时,该分隔符右边不会拆分出空字符串。
DATA: lv_str TYPE string,
lt_split_table TYPE TABLE OF string,
ls_split_table TYPE string.
SPLIT lv_json AT '[' INTO str1 str2.
SPLIT str2 AT ']' INTO TABLE lt_split_table.
LOOP AT lt_split_table INTO ls_split_table.
IF sy-tabix <> sy-tfill. "最后一行不参与拼接
CONCATENATE str3 ls_split_table INTO str3 .
ENDIF.
ENDLOOP.
CONCATENATE '[' str3 ']' INTO o_return5 .
这是将str2根据‘]’拆分,然后去掉最后一个,在拼接起来。
这是实现 SPLIT 从右侧拆分的一种方法.