【216】◀▶ IDL 字符串操作說明


參考:String Processing Routines —— 字符串處理函數


01   STRING 返回字符串。
02   STRCMP 比較字符串,一樣返回1,不一樣返回0,默認大小寫敏感。
03   STRMATCH 字符串進行比較,一致返回1,不一致返回0。
04   STRCOMPRESS 將字符串中的空格和Tab等壓縮成一個空格。
05   STRJOIN 將字符串數組合並成一個字符串。
06   STRLEN 返回字符串的長度。
07   STRPOS 字符串中字符所在的索引值,返回數值。
08   STRMID 字符串截取,返回截取后的字符串。
09   STRPUT  將后面字符串替換前面相同數目的字符串。
10   STRSPLIT 默認返回拆分索引數組,也可返回拆分字符串數組。
11   STRTRIM  刪除字符串前后的空格。
12   STRUPCASE  字符串大寫。
13   STRLOWCASE 字符串小寫。

序號 名稱  

功能說明

   語法 & 舉例
01 STRING   返回字符串。
STRING(Expression1, ..., Expressionn]
 

◈ 將數值數組轉換為字符串數組:
  
b=STRING(INDGEN(5)) 

 02 STRCMP   比較字符串,一樣返回1,不一樣返回0,默認大小寫敏感
STRCMP(Str1, Str2 [, N], /FOLD_CASE)
◈ N:比較前N個字符
FOLD_CASE:設置此項后大小寫不敏感
 

◈ 返回值:1
  STRCMP('Moose', 'mooMD', 3, /FOLD_CASE)

◈ 返回值:0
  STRCMP('Moose', 'mooMD', 4, /FOLD_CASE)

 03 STRMATCH  

字符串進行比較,一致返回1,不一致返回0。
STRMATCH(Str, SearchStr, /FOLD_CASE)
SearchStr可以使用通配符,*表示所有字符,?表示一個字符,[...]可選擇符

 

◈ 返回值:1
  STRMATCH('alexlee', 'alex?ee')

◈ 返回值:0
  STRMATCH('alexlee', 'alex[abc]ee')

◈ 返回值:1
  STRMATCH('alexlee', 'alex[abclmn]ee')

 04 STRCOMPRESS   將字符串中的空格和Tab等壓縮成一個空格。
STRCOMPRESS(String, /REMOVE_ALL)
REMOVE_ALL:刪除所有空格
 

◈ 返回值:alex lee
  STRCOMPRESS('alex    lee')

◈ 返回值:alexlee
  STRCOMPRESS('alex    lee', /REMOVE_ALL)

 05 STRJOIN   將字符串數組合並成一個字符串。
STRJOIN(String [, Delimiter], /SINGLE)
◈ String:字符串數組
◈ Delimiter:用於連接數組的分隔符
 

◈ 返回值:ABCCDEFG
  STRJOIN(['ABC', 'CDE', 'FG'])

◈ 返回值:ABC-CDE-FG
  STRJOIN(['ABC', 'CDE', 'FG'], '-'
)

 06 STRLEN  

返回字符串的長度。
STRLEN(Expression)

   
 07 STRPOS  

字符串中字符所在的索引值,返回數值。
STRPOS(Expression, Search_String [, Pos], /REVERSE_OFFSET, /REVERSE_SEARCH)
◈ Pos:開始搜索的索引值
REVERSE_OFFSET:開始索引從后面計算
◈ REVERSE_SEARCH:從后面開始搜索

 

◈ 返回值:0
  STRPOS('fun is fun', 'fun')

◈ 返回值:7
  STRPOS('fun is fun', 'fun', /REVERSE_SEARCH)

◈ 返回值:7
  STRPOS('fun is fun', 'fun', 1)

◈ 返回值:7
  STRPOS('fun is fun', 'fun', 4, /REVERSE_OFFSET)

 08 STRMID  

字符串截取,返回截取后的字符串。
STRMID(Expression, First_Character [, Length], /REVERSE_OFFSET)
First_Character:開始搜索的索引值
Length:搜索的長度,默認到最后
REVERSE_OFFSET:索引值從后往前算

 

◈ 返回值:lexbnlee
  STRMID('alexbnlee', 1)

◈ 返回值:ee
  STRMID('alexbnlee', 1, /REVERSE_OFFSET)

◈ 返回值:bn
  STRMID('alexbnlee', 4, 2)

 09 STRPUT  

將后面字符串替換前面相同數目的字符串。
STRPUT, Destination, Source [, Position]
Destination:變量,操作后發生變化
Source:字符串
Position:替換的位置索引,默認是0

 

◈ 變量 A = "ALEXBNLEE"
◈ 返回值:IDLXBNLEE
  STRPUT, A, "IDL" & PRINT, A

◈ 變量 A = "ALEXBNLEE"
◈ 返回值:ALEXBNIDL
  STRPUT, A, "IDL", 6 & PRINT, A

 10 STRSPLIT   默認返回拆分索引數組,也可返回拆分字符串數組。
STRSPLIT(String [, Pattern] [, COUNT=variable] [, ESCAPE=string] [, /FOLD_CASE]] [, /EXTRACT|, LENGTH=variable])
String:欲拆分的字符串或字符串數組
Pattern:字符串分隔符,默認是空格/TAB
COUNT=variable:得到拆分后得到數組的元素個數
ESCAPE=string:刪除符合的string值
FOLD_CASE:大小寫不敏感
EXTRACT:返回字符串數組
LENGTH=variable:拆分后,字符串數組中每個字符串的長度,返回值為數組
 

◈ 變量 str = "alex is so cute"
◈ 變量 str1 = "alex-is-so-cute"
◈ 返回值:[0, 5, 8, 11]
  STRSPLIT(str)
  STRSPLIT(str1, "-")

變量 str = "alex is so cute"
◈ 處理后,count=4
  STRSPLIT(str, COUNT=count)

◈ 變量 str2 = ";alex;-;is;-;so;-;cute;"
◈ 返回值:alex-is-so-cute
  STRSPLIT(str2, ESCAPE=";", /EXTRACT)

◈ 變量 str = "alex is so cute"
◈ 處理后,length=[4, 2, 2, 4]
  STRSPLIT(str, LENGTH=length)

 11 STRTRIM  

刪除字符串前后的空格。
STRTRIM(String [, Flag])
Flag:0=后空格,1=前空格,2=前后空格

 

STRTRIM(a):去掉后面的空格
STRTRIM(a, 1):去掉前面的空格
STRTRIM(a, 2):去掉前后的空格

 12 STRUPCASE
 

字符串大寫。
STRUPCASE(String)

 

 

 13 STRLOWCASE
 

字符串小寫。
STRLOWCASE(String)

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM