替换字段内容

REPLACE [FIRST /ALL OCCURRENCES OF]<STR1>INTO <STR> WITH <STR2>

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.
DATA STR1 TYPE C  LENGTH 3 VALUE 'HOW'.
DATA STR2 TYPE C  LENGTH 4 VALUE 'SDFH'.
REPLACE FIRST OCCURRENCE OF STR1 IN STR  WITH 'SDFH'.

REPLACE FIRST OCCURRENCE OF STR1 IN STR  WITH STR2.

REPLACE FIRST OCCURRENCE OF 'HOW' IN STR  WITH STR2.
替换字符串STR 中第一次出现STR1 的地方.

OF 后面跟被替换的内容,可以是变量和常数,

WITH 后面跟要替换的内容,可以是变量和常数。

       
   

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.

REPLACE ALL OCCURRENCES OF STR1 IN STR  WITH STR2.

替换字符串STR 中所有出现STR1 的地方.

REPLACE  STR1 IN STR  WITH STR2 .

默认只替换第一次出现的地方.

REPLACE <STR1> WITH <STR2> INTO <STR> [LENGTH <1>]

只能替换字符串STR 中第一次出现STR1 的地方.

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.

DATA STR1 TYPE C  LENGTH 3 VALUE 'HOW'.
DATA STR2 TYPE C  LENGTH 4 VALUE 'SDFH'.

REPLACE  STR1  WITH STR2 INTO STR  LENGTH '2'.

LENGTH '2' 表示被替换的字符长度。

REPLACE  STR1  WITH STR2 INTO STR.

没有LENGTH 默认全部替换

注意

FIRST /ALL OCCURRENCES OF 不能与 LENGTH 同时用,两种语法间的区别。

转换大/小写

将字符串转换成大写

DATA STR3 TYPE C  LENGTH 50 VALUE  ' qaewrwetW'.

TRANSLATE STR3 TO UPPER CASE.

将字符串转换成小写

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.

TRANSLATE STR TO LOWER  CASE.

查找字符串

若要查看结果,将查找结果放入查找结果表中.

ABAP 中有专门的存放查找结果的表类型MATCH_RESULT_TAB.

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.
DATA STR1 TYPE C  LENGTH 3 VALUE 'HOW'.

DATA RESLT TYPE MATCH_RESULT_TAB.

FIND FIRST OCCURRENCE OF STR1 IN STR RESULTS RESLT.

找出字符串STR 中第一次出现字符串 STR1 的地方。

查找结果是行数(第0行),起始位数(第4位),长度(3位)

起始位数19,长度3

起始位数4,长度3

找出字符串STR 中所有出现字符串 STR1 的地方。

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.
DATA STR1 TYPE C  LENGTH 3 VALUE 'HOW'.

FIND ALL OCCURRENCES OF STR1 IN STR RESULTS RESLT.

获得字符串长度.

STRLEN(<c>) :<c>数据类型只能是C,N,D,T

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.

DATA INT1 TYPE I.
INT1 = STRLEN( STR ).

获取字符串STR的长度,结果放入变量INT1 中.

INT1 = STRLEN( 'STR' ).

注意:括号内两边要有空格,括号内可以是常量,也可以是变量.

D,T数据类型的长度是固定的,为8位和6位,而C,N 型根据实际情况.

压缩字段内容

单个单词时

DATA STR4 TYPE C  LENGTH 10 VALUE '  HOW  '.
CONDENSE STR4.

去掉单词两边得空格。

有多个单词时,单词之间用空格隔开,其余空格全部去掉。

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.
CONDENSE  STR  .

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.

CONDENSE  STR  NO-GAPS.

NO-GAPS作用,去除所有的空格。

在定义时,如果指定了字符串长度,WRITE输出时,输出长度等于定义长度

DATA STR TYPE C  LENGTH 50 VALUE  '    HOW    ARE YOU HOW'.
CONDENSE  STR  .
WRITE :str,'!'.

50位

DATA STR TYPE STRING VALUE  '    HOW    ARE YOU HOW'.
CONDENSE  STR  .
WRITE :str,'!'.

注意:CONDENSE 后面的变量只能是C,N,D,T类型的。

 
 

DATA INT1(15) TYPE N VALUE '21  02    3'.
CONDENSE  INT1  .

对于N型数据,CONDENSE去掉空格后,会在前面补充前导0.

DATA INT1 TYPE D VALUE '21  2  3'.
CONDENSE  INT1  .

DATA INT1 TYPE T VALUE '22  3 '.
CONDENSE  INT1  .

连接字符串

CONCATENATE <c1> ... <cn> INTO<c> [SEPARATED BY <s>].

DATA STR1 TYPE  STRING VALUE ' AB01 '  .
DATA STR2 TYPE  STRING VALUE ' CD02 '.
DATA STR TYPE  STRING .
CONCATENATE  STR1 STR2 INTO STR  .

被去掉了

DATA  STR1 TYPE   STRING VALUE  ' AB01         '   .
DATA  STR2 TYPE   STRING VALUE  '     CD02 ' .

 
 

5位空格

DATA STR1 TYPE  STRING VALUE ' AB01         '  .
DATA STR2 TYPE  STRING VALUE 'CD02 '.

通过对比,拼接时会自动去掉拼接对象后面的空格,而前面的空格保留。

SEPARATED BY  拼接时用什么隔开。

CONCATENATE  STR1 STR2 INTO STR SEPARATED BY ','  .

 
 

TAB键隔开.

CONCATENATE  STR1 STR2 INTO STR 
SEPARATED BY CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB .

TAB 键在这里无法显示,以#号键表示

日期拼接

DATA INT1 TYPE  D VALUE '20110218'  .
DATA INT2 TYPE   D VALUE '20110219'.
DATA STR TYPE  STRING .
CONCATENATE  INT1 INT2  INTO STR.

时间拼接

DATA INT1 TYPE  T VALUE '123226'  .
DATA INT2 TYPE   T VALUE '112336'.

DATA STR TYPE  STRING .
CONCATENATE  INT1 INT2  INTO STR.

数字文本拼接

DATA INT1(6) TYPE  N VALUE '123226'  .
DATA INT2(6) TYPE   N VALUE '112336'.
DATA STR(12) TYPE  N .
CONCATENATE  INT1 INT2  INTO STR.

注意:C,N,D,T类型的数据可拼接,I,F,P,X类型的数据 不能拼接。

D,T型拼接时,因为都是定长度,如果用DT类型接收,只能取到第一条数据,失去拼接的意义,所以接收类型定为STRING或N型。

4位空格

拼接时,若要保留字符串后面的空格,使用偏移量方法。

1位空格

5位空格

DATA  STR1 TYPE   STRING VALUE  ' AB01    '   .
DATA  STR2 TYPE   STRING VALUE  ' CD02 ' .
DATA  STR3 TYPE   STRING VALUE  ' EF03 ' .
DATA  STR TYPE   C  LENGTH 16 .

STR+0 (9 ) = STR1.
STR+9 (5 ) = STR2.

 
 

使用偏移量时注意:(1)括号前面数字位开始位,括号里面的数字为长度。

(2)接收的变量需要指定长度,不能用STRING类型.

拆分字符串

SPLIT <c> AT <del> INTO <c1> ...<cn>.

DATA STR1 TYPE  STRING .
DATA STR2 TYPE  STRING .
DATA STR3 TYPE  STRING .
DATA STR TYPE  STRING VALUE 'OK,GOOD,NICE'.
SPLIT STR AT',' INTO STR1 STR2  STR3.

DATA STR4 TYPE C VALUE ','.
SPLIT STR AT STR4 INTO STR1 STR2  STR3.

将字符串STR 按‘,’拆分,放入变量STR1 STR2 STR3 中.

按字母拆分时,需要识别大小写

注意以上各部分的变化,先将字符串做TAB 拼接,因TAB 键在这里无法显示,以’#’号表示,但这里的‘#’号不代表#号键,所以在用按’#’号拆分时无法成功。这里的’#’代表的是TAB键,只能用TAB 拆分.

sap对字符串的操作相关推荐

  1. 真香!精心整理了 100+Python 字符串常用操作

    来源丨萝卜大杂烩 作者丨周萝卜 字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,记得点赞收藏~ 字符串切片操作 test = ...

  2. C#(asp.net)对字符串的操作公共类(StringUtil.cs)

    C#(asp.net)对字符串的操作公共类(StringUtil.cs) 我们在做项目时会需要对字符串进行特殊处理,以下提供C#(asp.net)对字符串的操作公共类,直接复制以下代码到新建cs文件S ...

  3. python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  4. python【蓝桥杯vip练习题库】ADV-356字符串的操作

    试题 算法提高 字符串的操作 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给出一个字符串S,然后给出q条指令,分别有4种: 1. Append str 表示在S的最后追加一个字符 ...

  5. python基础实例-Python基础之字符串常见操作经典实例详解

    本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 en ...

  6. openresty开发系列18--lua的字符串string操作

    openresty开发系列18--lua的字符串string操作 string的相关操作 1)string.upper(s) 接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串. prin ...

  7. SAP UI5 应用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输入字段的校验逻辑试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  8. C#字符串常见操作总结详解

    C#字符串常见操作总结详解 本篇文章是对C#中字符串的常见操作进行了详细的总结介绍,需要的朋友参考下 (1)取字符串长度       <string>.Length; (2)字符串转为比特 ...

  9. shell对于字符串的操作

    shell对于字符串的操作: 以下为代码内容: 得到长度 代码: %x="abcd" # 方法一 %expr length $x 4 # 方法二 %echo ${#x} 4 # 方 ...

最新文章

  1. 27 个问题,告诉你 Python 为什么如此设计?
  2. 2011.10.17百度面试题
  3. 200723学习日报
  4. CSS: HTML 和 Body 的区别
  5. Difference between stem and lemma
  6. php smarty thinkphp,用新版的thinkphp3.2.3和新版的smarty3.1.29
  7. c均值聚类matlab程序_聚类算法之kmeans算法
  8. 深入解析AsyncTask
  9. 安全清理大部分的C盘内存(一般10GB以上)
  10. 惠普星14 指纹识别功能安装
  11. ValueError: Wrong number of items passed 2, placement implies 1
  12. 《计算机网络》笔记摘抄汇总
  13. js时间转换的一些方法,时间转换天数,获取商品活动时间
  14. 谢希仁计算机网络第七版答案
  15. ABS210-ASEMI高品质贴片整流桥堆
  16. Transmitting Network Data Using Volley(使用Volley框架传输网络数据)
  17. Codeforces Round #514 (Div. 2)-D. Nature Reserve
  18. Chrome-扩展程序无法认证
  19. 【游戏推荐】疯狂豹子王--OGEngine精品游戏推荐系列【三】
  20. 宽带载波单灯控制器 (JST-HPLC-SRC)

热门文章

  1. Loom插件怎么用?Loom录屏插件使用教程
  2. java实现美图秀秀的照片拼接功能(照片数量任意)
  3. 【noip模拟赛1】古韵之鹊桥相会(最短路)
  4. Delphi实现win10视频壁纸
  5. python图形编程基础知识_AI-图像基础知识-01|python基础教程|python入门|python教程
  6. UEBA 的当下与未来
  7. 关于软件测试人员的几个职业规划方向
  8. 手动 php-mysql_win7下手动配置apache+php+mysql记
  9. 2019年12月7日周总结
  10. DataInputStream.readUTF返回返回EOFException