`
jgtang82
  • 浏览: 404723 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ABAP常用字符串操作收集整理

    博客分类:
  • ABAP
阅读更多

字符串首字符索引为 0; Character Fields: C,N, D, T, string (CNDT=> CN Data Time)

1. 字符串连接
CONCATENATE dobj1 dobj2 ...  INTO result
            [IN { BYTE | CHARACTER } MODE]
            [SEPARATED BY sep].

2.字符串分隔, split 一个string的部分到一个内表或一系列的变量
SPLIT dobj AT sep INTO
      { {result1 result2 ...} | {TABLE result_tab} }
      [IN {BYTE|CHARACTER} MODE].

3. 字符串查找, 在一个字符串中查找模式串(FIND or SEARCH)
FIND sub_string
  IN SECTION [OFFSET off] [LENGTH len] OF dobj   --> 灰色部分用来缩小目的串被查找的范围
  [ IN { BYTE | CHARACTER } MODE ]
  [ { RESPECTING | IGNORING } CASE ]
  [ MATCH OFFSET moff ] [MATCH LENGTH mlen ].

FIND 'knows'
    IN SECTION OFFSET 5 OF  'Everybody knows this is nowhere'
    MATCH OFFSET moff   "  => moff = 10
    MATCH LENGTH mlen. " => mlen= 5

在字符串dobj中查找pattern
SEARCH dobj FOR pattern  [IN { BYTE | CHARACTER } MODE]
       [STARTING AT p1] [ENDING AT p2]
       [ABBREVIATED]
       [AND MARK].
if sy-subrc = 0. then SY-FDPOS = 返回pattern在dobj中的位置
About pattern:
'pat'   - 忽略尾部空格
'.pat.' -不忽略尾部空格
'*pat' - 以pat结尾
'pat*' - 以pat开始
单词是指: 用 空格 , ; : ? ! () / + =分隔的字串

4. 字符串替换
REPLACE SECTION [OFFSET off] [LENGTH len]
        OF dobj WITH new
        [IN { BYTE | CHARACTER } MODE].

REPLACE [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF]
        [SUBSTRING] sub_string
        IN [SECTION [OFFSET off] [LENGTH len] OF ] dobj WITH new
        [IN {BYTE|CHARACTER} MODE]
        [{RESPECTING|IGNORING} CASE]
        [REPLACEMENT COUNT rcnt]
        [REPLACEMENT OFFSET roff]
        [REPLACEMENT LENGTH rlen].
eg:
DATA: text1 TYPE string VALUE 'xababx'.
REPLACE 'ab' IN text1 WITH 'xx'. --> xxxabx

5. 去前导0 (Remove leading zero)
SHIFT dobj LEFT DELETING LEADING '0'.
FM : CONVERSION_EXIT_ALPHA_OUTPUT

增前导0 (Add leading zero)
DATA v_s(5).
UNPACK '123' to v_s.  ==> v_s = '00123'
FM: CONVERSION_EXIT_ALPHA_INPUT

SHIFT dobj
     [{BY num PLACES} | {UP TO sub_string}]
     [LEFT|RIGHT] [CIRCULAR]
SHIFT dobj
     {LEFT  DELETING LEADING} | {RIGHT DELETING TRAILING} pattern.
     [IN {BYTE|CHARACTER} MODE].

6. 字符串的长度, 内表的行数
 STRLEN( dobj) 字符串的长度
 LINES( itab ) 内表的行数

7. 删字符串中的空格: CONDENSE text [NO-GAPS].

8. 大小写转换,字符变换
TRANSLATE text {TO {UPPER|LOWER} CASE} | {USING pattern}.
eg: text = `Barbcbdbarb`.
TRANSLATE text USING 'ABBAabba'. =>'Abracadabra'

9. CONVERT
CONVERT DATE dat [TIME tim [DAYLIGHT SAVING TIME dst]]
        INTO TIME STAMP time_stamp TIME ZONE tz.

CONVERT TIME STAMP time_stamp TIME ZONE tz
        INTO [DATE dat] [TIME tim]
        [DAYLIGHT SAVING TIME dst].

CONVERT TEXT text INTO SORTABLE CODE hex.

10. OVERLAY text1 WITH text2 [ONLY pattern].
如果不指定后面的ONLY pattern, text1中的空格会被text2中的对应字符替代
如果指定只有匹配的字符才会被替代,注意大小写敏感

11. 模式匹配
CO / CN contains only or not
CA / NA contains any or not any
CS / NS contain string or not
CP / NP contains pattern or not

NOTE:
a) . CO, NO, CA, NA比较时区分大小写, 并且尾部空格也在比较的范围之内
data: s1(10) value 'aabb'.
if s1 co 'ab' ==> false
if s1 co 'ab ' ==>true
CS, NS, CP, NP不区分大小写和尾部空格

b) .对于CP, NP
*   = \s?
+ = \s
# 换码字符, 用于匹配 *, +这样的字符
      ##
      #*
      #+
      #___   比较结尾空格
      #[a-z] 在CP, NP中强制区分大小写

c) . 比较结束后,如果结果为真,sy-fdpos将给出s2在s1中的偏移量信息

12. 特殊字符
在字符串中加入回车换行或TAB字符,在其他语言可以使用$13$10这样的ASCII码进行插入.但在ABAP中要使用sap的类CL_ABAP_CHAR_UTILITIES. 里面有字符常量:CR_LF,HORIZONTAL_TAB,NEWLINE等等.

13. 字符串位操作
DATA: v_s(10) value 'abcd'.
v_s+0(1) = 'b'.
v_s+2(*) = '12'.
=> v_s = 'bb12'. 

分享到:
评论
1 楼 zhouwubin 2009-01-21  
一个伟大的(之前为凑字数)沙发

相关推荐

    ABAP常用字符串操作

    ### ABAP常用字符串操作知识点详解 #### 一、字符串连接 在ABAP中,字符串连接是一种常见的操作方式,用于将两个或多个字符串合并成一个新的字符串。实现字符串连接的方法主要是通过`CONCATENATE`语句。 **语法...

    ABAP字符串SQL Functions语法总结

    ABAP是一种专为SAP系统设计的编程语言,而在ABAP中处理字符串时,SQL Functions提供了许多方便的方法。本文将对ABAP SQL Functions for Strings进行详细的语法总结。 首先,我们来讨论一下如何在ABAP SQL中跨Client...

    abap字符串操作

    包括abap低于字符串的操作相关示例代码

    abap处理字符串[参考].pdf

    ABAP处理字符串 在ABAP中,字符串处理是非常重要的一部分,今天我们将学习ABAP中处理字符串的各种方法。 一、移动字段内容 ABAP中移动字段内容有多种方法,下面我们将分別介绍。 1、按给定位置数移动字符串 ...

    判断一个字符串或字符串中的一个字符是否为数字类型

    在编程领域,判断一个字符串或字符串中的一个字符是否为数字类型是常见的操作,尤其是在处理用户输入、数据分析或者格式验证时。下面将详细讲解几种不同语言中实现这一功能的方法,以及如何确保判断的安全性和效率。...

    abap处理字符串[借鉴].pdf

    在ABAP编程中,处理字符串是一项基础且重要的任务。这篇学习笔记主要涵盖了五个方面的内容,包括移动字段内容、替换字段内容、转换大/...在实际编程中,可以根据需求灵活运用这些语句,以实现字符串的精确操作和管理。

    ABAP常用函数集锦

    本资源摘要信息将介绍一些常用的ABAP函数,涵盖了字符串处理、日期处理、屏幕处理、文件处理、数据库处理等多个方面。 字符串处理 CONVERSION_EXIT_ALPHA_INPUT:将数字字符串前补零,例如input = 123,output = ...

    ABAP常用开发技术讲义

    ABAP常用开发技术讲义 ABAP常用开发技术讲义是SAP系统中的一个重要组件,用于开发各种报表程序。报表程序是从数据库中抓取数据,并将其整理出来,以供企业高层或相关人员查看。以下是ABAP常用开发技术讲义中的知识...

    sap abap常用bapi

    以下是一些SAP ABAP开发中常用的BAPI及其功能的详细说明: 1. BAPI_MATERIAL_SAVEDATA 这个BAPI用于保存物料数据。它包括了扩展字段的处理,允许开发人员保存对物料主数据的自定义扩展字段信息。 2. BAPI_OBJCL_...

    ABAP常用函数

    ABAP 中提供了多种字符串函数,用于操作和处理字符串。常用的字符串函数有: 1. SHIFT STRING:左移字符串,长度减 1 2. SPLIT:拆分字符串 3. SEARCH:查询字符串 4. REPLACE:替换字符串 5. CONDENSE:删除多余的...

    ABAP SQL 语句 动态 操作

    在ABAP编程中,SQL语句的动态操作是高级编程技术的一个重要方面,它允许根据程序运行时的条件和用户输入来构建和执行SQL查询。本程序“ZSQL_EXEC_RICOO”展示了如何使用ABAP实现动态SQL操作,包括SELECT、UPDATE、...

    ABAP常用事务码

    ABAP的T-CODE事物码、描述、以及备注 标注红色的为常用事物码需要记忆

    ABAP 常用函数总结

    ABAP 常用函数总结 ABAP 开发中,函数是非常重要的一部分,合理地使用函数可以大大提高开发效率和代码质量。本文总结了 ABAP 中常用的函数,包括日期计算、表操作、数据转换、权限检查、报表生成、PDF 转换、日期...

    SAP_ABAP常用表

    SAP——ABAP常用数据表介绍

    ABAP加密和解密.doc

    这些方法支持对字符串、二进制数据甚至整个表进行加密。 解密则是加密的逆过程,将密文还原为原始明文。在ABAP中,对应的解密函数如`cl_abap_decrypt`类可以用来恢复加密的数据。使用这些函数时,需要确保正确地...

    ABAP常用开发技术讲义[整理].pdf

    ABAP常用开发技术讲义总结 报表程序是ABAP开发中的一种常见应用,主要作用是从数据库中抓取数据并整理陈列出来,供企业高层或具有相关需求的人员查看。在ABAP中,报表程序可以分为多种类型,包括基本的LIST报表、...

    ABAP编程常用函数

    21. `SHIFT`: 左移字符串,将所有字符向左移动一位,最右侧的字符被删除。 22. `CONCATENATE`: 合并两个或多个字符串,生成一个新的字符串。 23. `SPLIT`: 将字符串按指定分隔符分割成多个子字符串。 24. `SEARCH`: ...

    ABAP编程基础

    - **字符串处理函数**:提供截取字符串等操作。 - **子程序或自定义函数调用**。 - **SQL语法**:用于数据库查询等功能。 - **数据结构**:内部表的声明和使用。 #### 三、报表概述 - **任务选择**:用户可以选择...

    ABAP常用表描述.xlsx

    ABAP常用表描述

Global site tag (gtag.js) - Google Analytics