张书会
[转载]IDL字符串操作说明
2019-9-29 16:32
阅读:2621

refer to:

www.harrisgeospatial.com/docs/routines-87.html

https://www.cnblogs.com/alex-bn-lee/p/5794295.html

【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字符串小写。

序号名称

功能说明


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

◈ 将数值数组转换为字符串数组:
  
b=STRING(INDGEN(5)) 

 02STRCMP
比较字符串,一样返回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)

 03STRMATCH

字符串进行比较,一致返回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')

 04STRCOMPRESS
将字符串中的空格和Tab等压缩成一个空格。
STRCOMPRESS(String, /REMOVE_ALL)
REMOVE_ALL:删除所有空格

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

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

 05STRJOIN
将字符串数组合并成一个字符串。
STRJOIN(String [, Delimiter], /SINGLE)
◈ String:字符串数组
◈ Delimiter:用于连接数组的分隔符

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

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

 06STRLEN

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



 07STRPOS

字符串中字符所在的索引值,返回数值。
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)

 08STRMID

字符串截取,返回截取后的字符串。
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)

 09STRPUT

将后面字符串替换前面相同数目的字符串。
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

 10STRSPLIT
默认返回拆分索引数组,也可返回拆分字符串数组。
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)

 11STRTRIM

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


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

 12STRUPCASE

字符串大写。
STRUPCASE(String)



 13STRLOWCASE

字符串小写。
STRLOWCASE(String)



转载本文请联系原作者获取授权,同时请注明本文来自张书会科学网博客。

链接地址:https://wap.sciencenet.cn/blog-587102-1199994.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?