ABAP中字符串处理方法小结(一)详解编程语言
img >
语法:
CONCATENATE c1 ... cn INTO c [SEPARATED BY s ].
代码:
DATA: C1(10) VALUE Sum, C2(3) VALUE mer, C3(5) VALUE holi , C4(10) VALUE day, C5(30), SEP(3) VALUE - . CONCATENATE C1 C2 C3 C4 INTO C5. WRITE C5. CONCATENATE C1 C2 C3 C4 INTO C5 SEPARATED BY SEP. WRITE / C5.
显示结果:
img >
在 C1 到 C5 之间,忽略 尾部空格。 分隔符 SEP 保留尾部空格。
3, 获得字符串长度STRLEN语法:
[COMPUTE] n = STRLEN( c ).
代码:
DATA: int TYPE i, word1(20) TYPE c VALUE 12345, word2(20) TYPE c, word3(20) TYPE c VALUE 4 . int = strlen( word1 ). WRITE int. int = strlen( word2 ). WRITE / int. int = strlen( word3 ). WRITE / int.
显示结果:
img >
请注意,STRLEN 将操作数 c 作为字符数 据类型处理 ,而不考虑 其实际类型 。不进行转换。
4, 删除字段中空格CONDENSE语法:
CONDENSE c [NO-GAPS].
该语句去除字段 c 中的前导空格并用一个空格替换其它空格序列 。结果是左对齐单词, 每个单词用空格隔开。 如果指定附 加的 NO-GAPS, 则去除所有空格。
DATA: STRING(25) VALUE one two three four, LEN TYPE I. LEN = STRLEN( STRING ). WRITE: STRING, !. WRITE: / Length: , LEN. CONDENSE STRING. LEN = STRLEN( STRING ). WRITE: STRING, !. WRITE: / Length: , LEN. CONDENSE STRING NO-GAPS. LEN = STRLEN( STRING ). WRITE: STRING, !. WRITE: / Length: , LEN.
显示结果:
img >
请注意,字段 STRING 的总长度保持不变(注意!的位置),但删除的空格再次出现在右边。
5, 搜索字符串SEARCH语法:
SEARCH c FOR str options .
该语句在字 段 c 中搜索 str 中的字符串 。如果成功 ,则将 SY-SUBRC 的返回代码 值设置为0,并将 SY-FDPOS 设置为字段 c 中该字符串 的偏移量。
否则将 SY-SUBRC 设置为4。
搜索串 str 可为下列格 式之一:
str 目 的
pattern 搜 索 pattern (任何字符顺序)。忽略尾部空格。
. pattern . 搜 索 pattern ,但是不忽略尾部空格 。
* pattern 搜 索以 pattern 结尾的词。
pattern * 搜 索以 pattern 开始的词。
单词之间用 空格、逗号 、句号、分 号、冒号、 问号、叹号 、括号、斜 杠、加号和等号等分隔 。
代码:
DATA STRING(30) VALUE This is a little sentence.. WRITE: / Searched, SY-SUBRC, SY-FDPOS. ULINE /1(26). SEARCH STRING FOR X. WRITE: / X, SY-SUBRC UNDER SY-SUBRC, SY-FDPOS UNDER SY-FDPOS . SEARCH STRING FOR itt . WRITE: / itt , SY-SUBRC UNDER SY-SUBRC, SY-FDPOS UNDER SY-FDPOS . SEARCH STRING FOR .e .. WRITE: / .e ., SY-SUBRC UNDER SY-SUBRC, SY-FDPOS UNDER SY-FDPOS. SEARCH STRING FOR *e. WRITE: / *e , SY-SUBRC UNDER SY-SUBRC, SY-FDPOS UNDER SY-FDPOS. SEARCH STRING FOR s*. WRITE: / s* , SY-SUBRC UNDER SY-SUBRC, SY-FDPOS UNDER SY-FDPOS.
显示结果:
img >
搜索字符字 段 c 的各种选项 ( options ) 如下:
ABBREVIATED在字段 c 中搜索包含 str 中的单词, 其中字符可以被其它字符隔开,但是单词和字符串的第一个字母必须相同 。
STARTING AT n1在字段 c 中搜索从 n1 开始的 str 。结果 SY-FDPOS 参照相对于 n1 的偏移量而 不是字段的 开始。
ENDING AT n2在字段 c 搜索 str 直到位置 n2 。
AND MARK如果找到搜索串,则将搜索串中的所有字符(使用 ABBREVIATED 时的所有字 符)转换为大写形式。
代码:
DATA: STRING(30) VALUE This is a fast first example., POS TYPE I, OFF TYPE I. WRITE / STRING. SEARCH STRING FOR ft ABBREVIATED. WRITE: / SY-FDPOS:, SY-FDPOS. POS = SY-FDPOS + 2. SEARCH STRING FOR ft ABBREVIATED STARTING AT POS AND MARK. WRITE / STRING. WRITE: / SY-FDPOS:, SY-FDPOS. OFF = POS + SY-FDPOS - 1. WRITE: / Off:, OFF.
请注意,在 找到单词‘ fast’ 之后,为了 查找包含‘ ft’的第 二个单词, 必须在偏移 量 SY-FDPOS 上加2,然 后从位置 POS 开始查找。 否则,会再 次找到单词 ‘fast’ 。要获得‘ first’ 相对于字段 STRING 开始的偏移 量,从 POS 和 SY-FDPOS 计算。
字符串: Aaa-Bbb 如何判断字符串中含有 - ?
并且将 - 后面的字符舍去?
DATA string(20) VALUE Aaa-Bbb. SEARCH string FOR -. IF sy-subrc = 0. string = string+0(sy-fdpos). WRITE string. ENDIF.
img >
语法:
OVERLAY c1 WITH c2 [ONLY str ].
该语句用字符串 c2 中相应位置上的内容“覆盖” 字段 c1 中包含 str 中字母的所有位置。 c2 保持不变。
如果省略 ONLY str , 则覆盖字段 c1 中所有包含空格的位置 ,如果没有空格,则 c1 不会被“覆盖”。 如果至少要替换 c1 中的一个字 符,则将 SY-SUBRC 设置为 0。对于所有其它情况 ,将SY-SUBRC 设置为 4。
如果 c1 比 c2 长,则只覆 盖 c2 中的长度。
解释:
注意是 覆盖 不是”替换“!!!!!!!!!
OVER 1 2 3 WITH 456 .
结果为:152 3。
OVER 1 2 3 WITH 456 only 12.
结果为:4 6 3 。
OVER 123 WITH 456.
结果为:123。(没有空格)
OVER 1 2 3 WITH 456 only 13 .
结果为:4 2 。
代码:
DATA: T(10) VALUE a c e g i , STRING LIKE T, OVER(10) VALUE ABCDEFGHIJ, STR(2) VALUE ai. STRING = T. WRITE STRING. WRITE / OVER. OVERLAY STRING WITH OVER. WRITE / STRING. STRING = T. OVERLAY STRING WITH OVER ONLY STR. WRITE / STRING.
显示结果:
img >
T 与 OVER 的长度都是10。
以上。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19247.html
cjava相关文章
- 5 种使用 Python 代码轻松实现数据可视化的方法详解编程语言
- 请不要再说 Java 中 final 方法比非 final 性能更好了详解编程语言
- Java通过反射调用方法详解编程语言
- Java获取本地IP方法详解编程语言
- Java 定时器类 Timer 使用方法详解编程语言
- ashx文件获取$.ajax()方法发送的数据详解编程语言
- Python类三种方法,函数传参,类与实例变量(一)详解编程语言
- 2018-3 WebStorm最新版本破解激活方法详解编程语言
- Scanner类的.next()和.hashNext()方法详解编程语言
- String类的intern()方法详解编程语言
- RandomUtil随机操作的相关的工具类常用方法详解编程语言
- [六] 函数式接口的复合方法示例 predicate 谓词逻辑运算 Function接口 组合运算 比较器 逆序 比较链详解编程语言
- Spring Boot全局支持CORS(跨源请求)的配置方法详解编程语言
- Python3 WebDriver操作cookie的方法详解编程语言
- Java 数组的三种创建方法详解编程语言
- js jquery 页面加载初始化方法详解编程语言
- javascript腾讯地图放到网页中的方法详解编程语言
- php laravel 创建项目 500报错解决方法详解编程语言
- mysql General error: 1366 Incorrect string value: ‘/xF0/x9F/x91/x8D/xF0/x9F…’ for column ‘dianpumiaoshu’ at row 1 解决方法详解编程语言
- 一种内表转XML的方法step by ste详解编程语言
- 解除ABAP程序编辑锁的方法详解编程语言
- 自己实现一个Native方法的调用详解编程语言