zoukankan      html  css  js  c++  java
  • sap abap 对字符串的操作

    替换字段内容


    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 拆分.

  • 相关阅读:
    css概述五
    css概述四
    css概述三
    css概述二
    css概述
    Python的第三方web开发框架Django
    Python中的模块和包
    SQL语句优化
    数据库向Excel写入数据
    动态拼接sql语句
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7072834.html
Copyright © 2011-2022 走看看