常用字符串处理

上一期整理了ABAP的数据类型和定义,今天我们整理一下开发过程中常见的字符串处理命令。虽然说这些基础知识对于已经熟练使用Ctrl c + Ctrl v的资深码农来说过于简单。但是对于一些刚刚进入行业的新人来说,能够随时打开文章翻一翻也许还有有些帮助的。再者,俗话说的好,好记性不如烂笔头,哪天突然就是想不起来了不就刚好派上用场了~

1,字符串的截取

有时候我们需要获取某个字段值的某几位数值,通常可以直接指定字符串开始位置和长度。比如,想要截取下面'I LIKE SAP ABAP'中的sap三个字符串:

DATA:GDF_FIELD1 TYPE C LENGTH 15,  GDF_FIELD2 TYPE C LENGTH 15.    GDF_FIELD1 = 'I LIKE SAP ABAP'.  WRITE GDF_FIELD1.  GDF_FIELD2 = GDF_FIELD1+7(3).WRITE: / GDF_FIELD2.

输出结果:

字符串的截取默认字符是从0开始计算,所以第八位开始截3位写做+7(3)。

2,获取字符串的长度

abap中可以通过函数strlen来获取字符串的长度,如下:

DATA:  GDF_FIELD1 TYPE C LENGTH 15,  GDF_LENGTH TYPE C LENGTH 3.  GDF_FIELD1 = 'I LIKE SAP ABAP'.  GDF_LENGTH = STRLEN( GDF_FIELD1 ).  WRITE GDF_LENGTH.

输出结果:

3,字符串大小写转换

通过函数translate可以对字符串进行大小写转换,如下:

DATA:  GDF_FIELD1 TYPE C LENGTH 15,  GDF_LENGTH TYPE C LENGTH 3.GDF_FIELD1 = 'I LIKE SAP ABAP'.WRITE GDF_FIELD1.TRANSLATE GDF_FIELD1 TO LOWER CASE.WRITE / GDF_FIELD1.

输出结果:

再转换回大写:

DATA:  GDF_FIELD1 TYPE C LENGTH 15,  GDF_LENGTH TYPE C LENGTH 3.GDF_FIELD1 = 'i like sap abap'.WRITE GDF_FIELD1.TRANSLATE GDF_FIELD1 TO UPPER CASE.WRITE / GDF_FIELD1.

输出结果:

4,字符串的替换

有时候我们需要将某个字符串值的某个字符替换成制定的字符,可以通过replace来进行处理。如下:

DATA:  GDF_FIELD1 TYPE C LENGTH 15,  GDF_LENGTH TYPE C LENGTH 3.GDF_FIELD1 = 'i like sap abap'.REPLACE 'sap' WITH 'spa' INTO GDF_FIELD1.WRITE  GDF_FIELD1.

输出结果:

5,去处字符串空格

A,使用CONDENSE去除空格

例一:

DATA:  GDF_FIELD1 TYPE C LENGTH 15,  GDF_FIELD2 TYPE P LENGTH 4 DECIMALS 2.GDF_FIELD2 = '12345.22'.GDF_FIELD1 = GDF_FIELD2.WRITE / GDF_FIELD1.CONDENSE GDF_FIELD1.WRITE / GDF_FIELD1.

例二:

DATA:  GDF_FIELD1 TYPE C LENGTH 30,  GDF_FIELD2 TYPE STRING.GDF_FIELD1 = '      i like sap abap '.GDF_FIELD2 = '      i like sap abap '.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.CONDENSE GDF_FIELD1 NO-GAPS.CONDENSE GDF_FIELD2 NO-GAPS.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.

备注:

a,如果是C类型只去掉前面的空格,因为是定长,就算后面空格去掉了左对齐时后面会补上空格。

b,如果是String类型,则后面空格也会被去掉

c,NO-GAPS:字符串中间的所有空格都也都会去除(String类型也是这样)

d,空格去掉后会左对齐

B,使用SHIFT去除空格

例一:

DATA:  GDF_FIELD1 TYPE C LENGTH 30,  GDF_FIELD2 TYPE STRING.GDF_FIELD1 = '      i like sap abap1 '.GDF_FIELD2 = '      i like sap abap2 '.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2. SHIFT GDF_FIELD1 LEFT DELETING LEADING SPACE. SHIFT GDF_FIELD2 LEFT DELETING LEADING SPACE.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.

输出结果:

例二

DATA:  GDF_FIELD1 TYPE C LENGTH 30,  GDF_FIELD2 TYPE STRING.GDF_FIELD1 = '      i like sap abap1 '.GDF_FIELD2 = '      i like sap abap2 '.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2. SHIFT GDF_FIELD1 RIGHT DELETING TRAILING SPACE. SHIFT GDF_FIELD2 RIGHT DELETING TRAILING SPACE.WRITE / GDF_FIELD1.WRITE / GDF_FIELD2.

输出结果:

6,字符串的拆分

使用函数SPLIT对字符串进行拆分

例一,拆分到变量中:

DATA:  GDF_FIELD1 TYPE C LENGTH 10,  GDF_FIELD2 TYPE C LENGTH 3,  GDF_FIELD3 TYPE C LENGTH 6.GDF_FIELD1 = '400-123456'.SPLIT GDF_FIELD1 AT '-' INTO GDF_FIELD2 GDF_FIELD3.WRITE: / GDF_FIELD1,      / GDF_FIELD2,      / GDF_FIELD3.

输出结果:

例一,拆分到内表中:

处理一些文件数据比较常用

DATA:  GDF_FIELD1 TYPE C LENGTH 10,  GDT_FIELD  TYPE STANDARD TABLE OF STRING.GDF_FIELD1 = '400-123456'.SPLIT GDF_FIELD1 AT '-' INTO TABLE GDT_FIELD.BREAK-POINT.

内表数据:

7,字符串的合并

CONCATENATE函数可以对多个字符串合并

DATA:  GDF_FIELD1 TYPE C LENGTH 5,  GDF_FIELD2 TYPE C LENGTH 3,  GDF_FIELD3 TYPE C LENGTH 10. GDF_FIELD1 = '12345'. GDF_FIELD2 = 'ABC'. CONCATENATE GDF_FIELD1 GDF_FIELD2 INTO GDF_FIELD3. WRITE GDF_FIELD3.* 空格区分开  CONCATENATE GDF_FIELD1 GDF_FIELD2     INTO GDF_FIELD3 SEPARATED BY SPACE. WRITE / GDF_FIELD3.

输出结果:

输出结果:

8,查找字符串的位置

DATA: PATT       TYPE STRING VALUE `now`,      TEXT       TYPE STRING,      RESULT_TAB TYPE MATCH_RESULT_TAB,      LDT_COUNT      TYPE I.FIELD-SYMBOLS  LIKE LINE OF RESULT_TAB.FIND ALL OCCURRENCES OF PATT IN      `Everybody knows this is nowhere`      MATCH COUNT LDT_COUNT      RESULTS RESULT_TAB.*找到的次数WRITE LDT_COUNT.LOOP AT RESULT_TAB ASSIGNING .  WRITE: / -OFFSET, "位置           -LENGTH. "长度ENDLOOP.

输出结果:

下期讲解:选择画面定义

以上、宜しくお願い致します。

日语遇上搬砖

 每天一起进步一点点

kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理相关推荐

  1. stl字符串去除空格_在列表中推送字符并在C ++ STL中将它们打印为空格

    stl字符串去除空格 In this example, we are declaring a character list and pushing the characters from 'A' to ...

  2. java中井号字符串_深入Java基础(二)——字符串

    这段时间在准备找一份java实习工作,所以来把基础知识整理归纳一下 文章结构: 1.equals和== 2.字符串的基本知识以及字符串的源码解读: 3.字符串的注意点以及使用推荐: 一.equals和 ...

  3. 【PHP基础知识】——常用字符串处理函数总结

    一.概要 我们知道,字符串操作是主流web编程语言的基础,也是在日常开发中不可或缺的一项.PHP处理字符串的能力非常强大,方法也是多种多样.文章列举了一些PHP中常见的字符串处理方法. 二.常用字符串 ...

  4. python字符计数怎样去除空格_去除python中的字符串空格的简单方法

    python编程中,我们在修改代码,遇到空格很多的情况下,我们要删除空格.本文小编整理了三种字符串去除空格的方法: 方法一:使用字符串函数replace,去除全部空格. 实例: >>> ...

  5. 分割字符串,字符串去除空格

    ``` find() : Finds the first substring equal to the given character sequence find_first_of() : Finds ...

  6. c# string 占位符_C# 基础知识系列- 9 字符串的更多用法(一)

    0. 前言 在前面的文章里简单介绍了一下字符串的相关内容,并没有涉及到更多的相关内容,这一篇将尝试讲解一下在实际开发工作中会遇到的字符串的很多操作. 1. 创建一个字符串 这部分介绍一下如何创建一个字 ...

  7. 深入Java基础(二)——字符串家族

    上一篇写了基本数据类及其包装类详解,这篇我们就来讨字符串这个家族吧,这个也是重中之重啊!!! 文章结构: 1.众说纷纷的equals和==: 2.字符串家族的基本知识以及字符串家族的源码解读: 3.字 ...

  8. C语言基础知识-数组和字符串

    C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...

  9. 【java json基础】字符串转json json转字符串 json数组转换 【java基础知识】【实用】【一看就会】

    原文:[java json基础]字符串转json json转字符串 json数组转换 [java基础知识][实用][一看就会] 读书就是:从薄读厚,再从厚读薄的过程. 文比较长,各讲述如下: 若是新手 ...

最新文章

  1. C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列
  2. C# — Windows服务安装后自动停止问题
  3. 随机森林做特征重要性排序和特征选择
  4. 【AI视野·今日CV 计算机视觉论文速览 第198期】Fri, 14 May 2021
  5. 并发-阻塞队列源码分析
  6. java 处理视频帧_如何将视频处理成每帧的图片?.最好是java实现..
  7. oracle 每分钟执行,CSS_ORACLE JOB INTERVAL参数设置, 1:每分钟执行nb - phpStudy
  8. javascript设置首页,加入收藏
  9. 计算机设计大赛答辩提问,电子设计大赛答辩常见问题合集
  10. python求三位数每一位的和_输入一个三位数的整数,求这个三位数每一位上数字的和是多少。例如,输入: 382,输出:和为 13。 编写 Python 程序实现上述要求...
  11. 基于marlin固件的SCARA机器人
  12. 群晖DSM7添加套件源
  13. Python之通过API获取数据库数据及图片
  14. 《计算机网络 自顶向下》第二章==应用层==随堂笔记
  15. MATLAB 数学应用 初等数学 绘制虚数和复数数据图
  16. 中国的开源之夏来了!
  17. vue3 H5 pdf插件 iphone查看pdf失败
  18. PC版微信发送无损视频除了使用压缩还有另外的方法
  19. VSCode改主题背景
  20. 微信开发网页授权认证

热门文章

  1. 【MFC】1.Windows程序内部运行原理
  2. 图像及其表达与性质(上)
  3. 在整个数据库中查找包含某关键字的所有存储过程
  4. 还原数据库出现“因为数据库正在使用,所以无法获得对数据库的独占访问权”解决方法-
  5. C#中对象的序列化与反序列化
  6. 使用汇编软件emu8086输出十次Hello World!
  7. Java web 开发的概念、环境配置、创建项目过程详解(Eclipse)
  8. java怎么把大小写转换_JAVA 如何将String进行大小写转换
  9. 汇编语言数据传送示例
  10. Android7.0 PowerManagerService亮灭屏分析(三)