参考:
参考:
01 | 返回字符串。 | ||
02 | 比较字符串,一样返回1,不一样返回0,默认大小写敏感。 | ||
03 | 字符串进行比较,一致返回1,不一致返回0。 | ||
04 | 将字符串中的空格和Tab等压缩成一个空格。 | ||
05 | 将字符串数组合并成一个字符串。 | ||
06 | 返回字符串的长度。 | ||
07 | 字符串中字符所在的索引值,返回数值。 | ||
08 | 字符串截取,返回截取后的字符串。 | ||
09 | 将后面字符串替换前面相同数目的字符串。 | ||
10 | 默认返回拆分索引数组,也可返回拆分字符串数组。 | ||
11 | 删除字符串前后的空格。 | ||
12 | 字符串大写。 | ||
13 | 字符串小写。 |
序号 | 名称 | 功能说明 | 语法 & 举例 | ||
01 | ====<<<< Description >>>>==== 返回字符串。---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== Result = STRING( Expression1, ..., Expressionn [, =[string, string]] [, =string_array{7 names}] [, =value] [, /] [, =string_array{12 names}] [, /] ) ---------------------------------------------------------------------------------- ====<<<< Return Value >>>>==== 返回值为字符串或字符串数组。---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Expression:表达式。◈ FORMAT:格式表达式,参考 format 输入输出。 参考: | IDL> ;相当与合并字符串IDL> str = string('a','b','c','d')IDL> strabcdIDL> b = string(indgen(5))IDL> help, bB STRING = Array[5] IDL> ;数字补0IDL> string(1, format='(I03)')001 | |||
02 | ====<<<< 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 | ====<<<< 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 | ====<<<< Description >>>>==== 将字符串中的空格和 Tab 等压缩成一个空格。---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== STRCOMPRESS(String, /REMOVE_ALL)---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ REMOVE_ALL:删除所有空格 | ◈ 返回值:alex lee STRCOMPRESS('alex lee')◈ 返回值:alexlee STRCOMPRESS('alex lee', /REMOVE_ALL) | |||
05 | ====<<<< Description >>>>==== 将字符串数组合并成一个字符串。---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== STRJOIN(String [, Delimiter], /SINGLE)---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ String:字符串数组◈ Delimiter:用于连接数组的分隔符 | ◈ 返回值:ABCCDEFG STRJOIN(['ABC', 'CDE', 'FG'])◈ 返回值:ABC-CDE-FG STRJOIN(['ABC', 'CDE', 'FG'], '-') | |||
06 | ====<<<< Description >>>>==== 返回字符串的长度。---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== STRLEN(Expression)---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Expression:字符串表达式,如果不是字符串则按照默认规则转换成字符串进行计算,例如整数;如果是数组则按照与原数组一致的结构返回每一个要素的长度。 | IDL> strlen(5) 8IDL> strlen(['a', 'abc', 'alex']) 1 3 4IDL> strlen('alex' + 'lee') 7 | |||
07 | ====<<<< 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 | ====<<<< 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 | ====<<<< 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 | ====<<<< 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 | ====<<<< Description >>>>==== 删除字符串前后的空格。---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== STRTRIM(String [, Flag])---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== ◈ Flag: 0:后空格删除,默认值 1:前空格删除 2:前后空格均删除 | ◈ STRTRIM(a):去掉后面的空格◈ STRTRIM(a, 1):去掉前面的空格◈ STRTRIM(a, 2):去掉前后的空格 | |||
12 | ====<<<< Description >>>>==== 字符串大写。---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== STRUPCASE(String) |
| |||
13 | ====<<<< Description >>>>==== 字符串小写。---------------------------------------------------------------------------------- ====<<<< Parameters >>>>==== STRLOWCASE(String) | ||||
14 | ====<<<< Description >>>>==== 返回值为包含查询字符串的向量。---------------------------------------------------------------------------------- ====<<<< Syntax >>>>==== Result = WHERE( Array_Expression [, Count] [, =variable] [, /] [, =variable] [, /] ) ---------------------------------------------------------------------------------- ====<<<< 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 4IDL> 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 代替 -1IDL> print, where(a gt 7) -1IDL> 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'noIDL> if(c eq -1) then print, 'no'no |