kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理
常用字符串處理
上一期整理了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基础知识二:常用字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: r语言的runmed函数_R实战 第五篇
- 下一篇: list筛选数据_Power Query