字符串操作
来源:互联网 发布:mac的电源线终身免换 编辑:程序博客网 时间:2024/06/03 12:08
1).SHIFT:截断字符串
2).REPLACE:替换字符串
3). TRANSLATE:转换字符串
4). SEARCH:查找字符串
5).CONDENSE:去掉字符串中的空格
6).SPLIT:拆分字符串
7).CONCATENATE:连接字符串
8) .移动字段内容
9).转换为可排序格式
10).覆盖字符字段
11).获得字符串长度
12).分配字符串部分
1).SHIFT:截断字符串 SHIFT {c} [BY {n} PLACES] [{mode}].: 作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变。如果n超出字符串的长度,则字符串变空,所以在做 此操作的时候要注意n的指定。可以首先获得该字符串的长度,方法:len=STRLEN(C)。 Mode:指定字符串截断的方向。 LEFT:从左边截断 RIGHT:从右边截断 CIRCULAR:把左边的字符放到右边。 SHIFT {c} UP TO {str} {mode}.: 作用:把字符串中在str以前的字符都去掉,同样可以指定mode,原理同上。 SHIFT {c} LEFT DELETING LEADING {str}. SHIFT {c} RIGHT DELETING TRAILING {str}.: 作用:这两个语句就是把字符串c中前的(LEFT)或者后的(RIGHT)的字符str都去掉。 以上语句常用的场合: A.去掉字符串中的前导字符。例如:如果alv中定一了一个字段是10位的字符,里面放的是so,po等number,而你不想显示前面的0,那么就可以这样做:SHIFT {c} LEFT DELETING LEADING 0. B.已知某个字符串中包含固定的字符,想把这个固定字符前面的字符删掉,那么可以使用:SHIFT {c} UP TO {str}。例如:某个物料,通过增强mga00002和mga00003对其加了前缀,这个前缀部分是在某固定值表中取得的数据,在具体显示中,要把其 前缀去掉。如TE-MRP-MAT1中想把te去掉,mrp表示该物料是跑mrp的,需求要求把te-去掉,mrp可以在固定值表中取得,则可以使用 SHIFT {c} UP TO 'MRP'. 2).REPLACE:替换字符串 REPLACE {str1} WITH {str2} INTO {c} [LENGTH {l}].: 作用:把字符串c中的str1替换成str2,如果指定l,就是指定了替换的长度。如果替换成功,则SY-SUBRC设置成0。 常用场合: 字符串的替换操作比较常用,需要注意的是l的指定长度。 3). TRANSLATE:转换字符串 TRANSLATE {c} TO UPPER CASE. TRANSLATE {c} TO LOWER CASE.: 作用:字符串的大小写的转换 TRANSLATE {c} USING {r}. : 作用:根据规则r转换字符串c 常用场合: Sap系统一般都是使用大写字母的,但是某些特定的字段却是用小写字母来标记的,在操作这些字段的时候就需要注意大小写的转换了。转换规则倒是不太常用,到现在我还没有遇到过。 4). SEARCH:查找字符串 SEARCH {c} FOR {str} {options}.: 作用:在字符串c中查找str,如果找到了,SY-SUBRC为0,SY-FDPOS为找到字符串的具体位置。 需要说明的地方:注意模式的使用 指定str:查找str,str中后面的空格忽略 指定.str.:查找str,包含了str中尾部的空格 指定*str:查找以str结尾的字符串 指定str*:查找以str开头的字符串 {options}的指定: 主要用到的就是:STARTING AT {n1}指定开始位置 ENDING AT {n2}指定结束位置 常用场合: 一般用来判断某个字符串是否符合条件。也可以结合其他语句对字符串进行操作。 5).CONDENSE:去掉字符串中的空格 CONDENSE {c} [NO-GAPS].: 作用:去掉字符串中的前面和后面的空格,如果指定NO-GAPS,则去掉字符串中的所有空格。 常用场合:获得字符串的精确长度,用于判断。 6).SPLIT:拆分字符串 SPLIT {c} AT {del} INTO {c1} ... {cn}. 作用:按照分割字符del把字符串c分割成c1…cn。 SPLIT {c} AT {del} INTO TABLE {itab}. 作用:按照分割字符del把c分割,然后放到内表中的相应字段 常用场合: 文件名的分割,根据完整的文件路径加文件名把文件名分割出来。 难点:无法确定要分割多少次. 解决方法:两两分割,到最后的那个就是了。例如:str=c:"dir1"dir2"dir3"file Split str at '"' into str1 str2. Find str2 for '/'. Check sy-subrc = 0. Do. Find str2 for '/'. If sy-subrc = 0. Split str2 into str1 str2. Else. Exit. Endif. Enddo. 文件上传的类型是字符串,把其分割后放到内表中。例如上面的问题: data: begin of itab occurs 0 , col1(30) type c, end of itab. Split str at '"' into table itab. describe table itab lines line. Read table itab index line. Itab-col1就是file 7).CONCATENATE:连接字符串 CONCATENATE {c1} ... {cn} INTO {c} [SEPARATED BY {s}]. 作用:把c1…cn用s分隔连接到c中 常用场合:文件下载,对文件中的字段编辑。 8).SHIFT <c> [BY <n> PLACES] [<mode>]. 按照给定位置数移动字符串 该语句将字段 <c> 移动 <n> 个位置。如果省略 BY <n> PLACES, 则将<n>解释为一个位置。如果<n> 是 0 或负值,则<c>保持不变。如果<n>超过<c>长度,则<c>用空格填充 。<n> 可为变量。 对不同(<mode>) 选项,可以按以下方式移动字段 <c>:a.LEFT:向左移动 <n> 位置,右边用<n>个空格填充(默认设置 )。b.RIGHT:向右移动<n>位置,左边用<n>个空格填充 。c.CIRCULAR:向左移动 <n> 位置,以便左边 <n> 个字符出现在右边。 移动字段串到给定串 SHIFT <c> UP TO <str> <mode>.
阅读全文
0 0
- 字符串操作
- 字符串操作
- 操作字符串
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 字符串操作
- 2017年11月5日 CCS布局基础 自学
- Mybatis(一对多查询)
- python 模拟登录CSDN
- [bzoj1047][HAOI2007]理想的正方形(单调队列)
- HDFS的运行基本原理
- 字符串操作
- 欢迎使用CSDN-markdown编辑器
- <python核心编程第二版第10章>习题
- ssh免密登录
- Mybatis(多对多查询)
- HDU 3449-Consumer
- 创建私有链(一)
- 完整ASCII字符表
- jbpm API整理