kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理
常用字符串處理
上一期整理了ABAP的數(shù)據(jù)類型和定義,今天我們整理一下開(kāi)發(fā)過(guò)程中常見(jiàn)的字符串處理命令。雖然說(shuō)這些基礎(chǔ)知識(shí)對(duì)于已經(jīng)熟練使用Ctrl c +?Ctrl v的資深碼農(nóng)來(lái)說(shuō)過(guò)于簡(jiǎn)單。但是對(duì)于一些剛剛進(jìn)入行業(yè)的新人來(lái)說(shuō),能夠隨時(shí)打開(kāi)文章翻一翻也許還有有些幫助的。再者,俗話說(shuō)的好,好記性不如爛筆頭,哪天突然就是想不起來(lái)了不就剛好派上用場(chǎng)了~
1,字符串的截取
有時(shí)候我們需要獲取某個(gè)字段值的某幾位數(shù)值,通常可以直接指定字符串開(kāi)始位置和長(zhǎng)度。比如,想要截取下面'I?LIKE?SAP?ABAP'中的sap三個(gè)字符串:
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.輸出結(jié)果:
字符串的截取默認(rèn)字符是從0開(kāi)始計(jì)算,所以第八位開(kāi)始截3位寫(xiě)做+7(3)。
2,獲取字符串的長(zhǎng)度
abap中可以通過(guò)函數(shù)strlen來(lái)獲取字符串的長(zhǎng)度,如下:
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.輸出結(jié)果:
3,字符串大小寫(xiě)轉(zhuǎn)換
通過(guò)函數(shù)translate可以對(duì)字符串進(jìn)行大小寫(xiě)轉(zhuǎn)換,如下:
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.輸出結(jié)果:
再轉(zhuǎn)換回大寫(xiě):
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.輸出結(jié)果:
4,字符串的替換
有時(shí)候我們需要將某個(gè)字符串值的某個(gè)字符替換成制定的字符,可以通過(guò)replace來(lái)進(jìn)行處理。如下:
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.輸出結(jié)果:
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類型只去掉前面的空格,因?yàn)槭嵌ㄩL(zhǎng),就算后面空格去掉了左對(duì)齊時(shí)后面會(huì)補(bǔ)上空格。
b,如果是String類型,則后面空格也會(huì)被去掉
c,NO-GAPS:字符串中間的所有空格都也都會(huì)去除(String類型也是這樣)
d,空格去掉后會(huì)左對(duì)齊
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.輸出結(jié)果:
例二
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.輸出結(jié)果:
6,字符串的拆分
使用函數(shù)SPLIT對(duì)字符串進(jìn)行拆分
例一,拆分到變量中:
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.輸出結(jié)果:
例一,拆分到內(nèi)表中:
處理一些文件數(shù)據(jù)比較常用
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.內(nèi)表數(shù)據(jù):
7,字符串的合并
CONCATENATE函數(shù)可以對(duì)多個(gè)字符串合并
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.* 空格區(qū)分開(kāi) CONCATENATE GDF_FIELD1 GDF_FIELD2 INTO GDF_FIELD3 SEPARATED BY SPACE. WRITE / GDF_FIELD3.輸出結(jié)果:
輸出結(jié)果:
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.*找到的次數(shù)WRITE LDT_COUNT.LOOP AT RESULT_TAB ASSIGNING . WRITE: / -OFFSET, "位置 -LENGTH. "長(zhǎng)度ENDLOOP.輸出結(jié)果:
下期講解:選擇畫(huà)面定義
以上、宜しくお願(yuàn)い致します。
日語(yǔ)遇上搬磚
“?每天一起進(jìn)步一點(diǎn)點(diǎn)”
總結(jié)
以上是生活随笔為你收集整理的kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: r语言的runmed函数_R实战 第五篇
- 下一篇: 年月日_C++计算输入的年月日是这一年的