序号 | 名称 | | 功能说明 | | 语法 & 举例 |
01 | STRING | | ====<<<< Description >>>>====
返回字符串。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== Result = STRING( Expression1, ..., Expressionn [, AM_PM=[string, string]] [, DAYS_OF_WEEK=string_array{7 names}] [, FORMAT=value] [, /IMPLIED_PRINT] [, MONTHS=string_array{12 names}] [, /PRINT] ) ----------------------------------------------------------------------------------
====<<<< Return Value >>>>====
返回值为字符串或字符串数组。 ----------------------------------------------------------------------------------
====<<<< Parameters >>>>====
◈ Expression:表达式。 ◈ FORMAT:格式表达式,参考 format 输入输出。 参考:Format Codes
| |
IDL> ;相当与合并字符串
IDL> str = string('a','b','c','d')
IDL> str
abcd
IDL> b = string(indgen(5))
IDL> help, b
B STRING = Array[5]
IDL> ;数字补0
IDL> string(1, format='(I03)')
001
|
02 | STRCMP | | ====<<<< Description >>>>==== 比较字符串,一样返回1,不一样返回0,默认大小写敏感。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRCMP(Str1, Str2 [, N], /FOLD_CASE) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ N:比较前N个字符 ◈ FOLD_CASE:设置此项后大小写不敏感
| |
◈ 返回值:1
STRCMP('Moose', 'mooMD', 3, /FOLD_CASE)
◈ 返回值:0
STRCMP('Moose', 'mooMD', 4, /FOLD_CASE)
|
03 | STRMATCH | | ====<<<< Description >>>>==== 字符串进行比较,一致返回1,不一致返回0。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRMATCH(Str, SearchStr, /FOLD_CASE) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ SearchStr:可以使用通配符 *:表示所有字符 ?:表示一个字符 [...]:可选择符
| |
◈ 返回值:1
STRMATCH('alexlee', 'alex?ee')
◈ 返回值:0
STRMATCH('alexlee', 'alex[abc]ee')
◈ 返回值:1
STRMATCH('alexlee', 'alex[abclmn]ee')
|
04 | STRCOMPRESS | | ====<<<< Description >>>>==== 将字符串中的空格和 Tab 等压缩成一个空格。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRCOMPRESS(String, /REMOVE_ALL) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ REMOVE_ALL:删除所有空格
| |
◈ 返回值:alex lee
STRCOMPRESS('alex lee')
◈ 返回值:alexlee
STRCOMPRESS('alex lee', /REMOVE_ALL)
|
05 | STRJOIN | | ====<<<< Description >>>>==== 将字符串数组合并成一个字符串。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRJOIN(String [, Delimiter], /SINGLE) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ String:字符串数组 ◈ Delimiter:用于连接数组的分隔符
| |
◈ 返回值:ABCCDEFG
STRJOIN(['ABC', 'CDE', 'FG'])
◈ 返回值:ABC-CDE-FG
STRJOIN(['ABC', 'CDE', 'FG'], '-')
|
06 | STRLEN | | ====<<<< Description >>>>==== 返回字符串的长度。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRLEN(Expression) ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Expression:字符串表达式,如果不是字符串则按照默认规则转换成字符串进行计算,例如整数;如果是数组则按照与原数组一致的结构返回每一个要素的长度。 | |
IDL> strlen(5)
8
IDL> strlen(['a', 'abc', 'alex'])
1 3 4
IDL> strlen('alex' + 'lee')
7
|
07 | STRPOS | | ====<<<< Description >>>>==== 字符串中字符所在的索引值,返回数值。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRPOS(Expression, Search_String [, Pos], /REVERSE_OFFSET, /REVERSE_SEARCH) ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Pos:开始搜索的索引值 ◈ REVERSE_OFFSET:Pos 从右面计算,获取从左数第一个 ◈ 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 | | ====<<<< Description >>>>==== 字符串截取,返回截取后的字符串。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRMID(Expression, First_Character [, Length], /REVERSE_OFFSET) ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ First_Character:开始搜索的索引值 ◈ Length:搜索的长度,默认到最后 ◈ REVERSE_OFFSET:索引值从后往前算
| |
◈ 返回值:lexbnlee
STRMID('alexbnlee', 1)
◈ 返回值:ee
STRMID('alexbnlee', 1, /REVERSE_OFFSET)
◈ 返回值:bn
STRMID('alexbnlee', 4, 2)
|
09 | STRPUT | | ====<<<< Description >>>>==== 将后面字符串替换前面相同数目的字符串。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRPUT, Destination, Source [, Position] ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Destination:变量,操作后发生变化 ◈ Source:字符串,新字符串 ◈ Position:替换的位置索引,默认是0
| |
◈ 变量 A = "ALEXBNLEE"
◈ 返回值:IDLXBNLEE
STRPUT, A, "IDL" & PRINT, A
◈ 变量 A = "ALEXBNLEE"
◈ 返回值:ALEXBNIDL
STRPUT, A, "IDL", 6 & PRINT, A
|
10 | STRSPLIT | | ====<<<< Description >>>>==== 默认返回拆分索引数组,也可返回拆分字符串数组。 可用来删除字符串中指定字符。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRSPLIT(String [, Pattern] [, COUNT=variable] [, ESCAPE=string] [, /FOLD_CASE]] [, /EXTRACT|, LENGTH=variable]) ---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ 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 | | ====<<<< Description >>>>==== 删除字符串前后的空格。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== STRTRIM(String [, Flag]) ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== ◈ Flag: 0:后空格删除,默认值 1:前空格删除 2:前后空格均删除
| |
◈ STRTRIM(a):去掉后面的空格
◈ STRTRIM(a, 1):去掉前面的空格
◈ STRTRIM(a, 2):去掉前后的空格
|
12 | STRUPCASE
| | ====<<<< Description >>>>==== 字符串大写。 ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== STRUPCASE(String)
| |
|
13 | STRLOWCASE
| | ====<<<< Description >>>>==== 字符串小写。 ----------------------------------------------------------------------------------
====<<<< Parameters >>>>==== STRLOWCASE(String)
| | |
14 | WHERE | | ====<<<< Description >>>>====
返回值为包含查询字符串的向量。 ----------------------------------------------------------------------------------
====<<<< Syntax >>>>==== Result = WHERE( Array_Expression [, Count] [, COMPLEMENT=variable] [, /L64] [, NCOMPLEMENT=variable] [, /NULL] ) ----------------------------------------------------------------------------------
====<<<< Return Value >>>>====
返回值为包含查询字符串的向量。如果 /NULL 设置了,那么没有匹配的时候返回值为 !NULL。 ----------------------------------------------------------------------------------
====<<<< Parameters >>>>====
◈ Array_Expression:要被搜索的数组表达式。 ◈ Count:返回搜索数组表达式中非零元素数目的变量。 ◈ NULL:设置这个关键字后,无匹配的话返回 !NULL 而不是 -1。 ◈ COMPLEMENT:设置关键字的变量用来获取表达式中0元素对应的下标值。 ◈ NCOMPLEMENT:设置关键字的变量用来获取表达式中0元素对应的下标值的数目。
| |
IDL> a = indgen(5)
IDL> a
0 1 2 3 4
IDL> b = where(a gt 2, count, complement=c, ncomplement=num_c)
; 符合表达式的下标
IDL> b
3 4
; 符合表达式的个数
IDL> count
2
; 不符合表达式的下标
IDL> c
0 1 2
; 不符合表达式的个数
IDL> num_c
3
; 用 !NULL 代替 -1
IDL> print, where(a gt 7)
-1
IDL> print, where(a gt 7, /null)
!NULL
; 通过判断结果是否为 -1 或者数目是否为 0,可以判断数组内是否包含某要素
IDL> b = ['a', 'b', 'c', 'd', 'a']
IDL> c = where(b eq 'm', count)
IDL> if(count eq 0) then print, 'no'
no
IDL> if(c eq -1) then print, 'no'
no
|