使用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 INT

博客介绍了使用SPLIT关键字拆分字符串的情况。当分隔符穿插在字符串中间时,拆分结果易知;而当分隔符位于字符串首或末尾时,有不同表现:首部分隔符左边会拆分出空字符串,末尾分隔符右边不会。还提及实现SPLIT从右侧拆分的一种方法。

3543

被折叠的 条评论
为什么被折叠?



