【216】◀▶ IDL 字符串操作说明 (黑底)

摘要:
03比较STRMATCH字符串。如果一致,则返回1。如果不一致,则返回0。04STRCOMPRESS将字符串中的空格、制表符等压缩为一个空格。05STRJOIN将字符串数组组合成单个字符串。06STRLEN返回字符串的长度。07STROPS字符串中字符的索引值,它返回一个数值。08STRID字符串截断返回截断的字符串。09STRPUT用相同数字的前一个字符串替换以下字符串。10STRSPLIT默认返回拆分索引数组或拆分字符串数组。11STRTRIM删除字符串前后的空格。SN名称和示例01STRING的函数描述语法===============˂˂˃===返回字符串。

参考:String Processing Routines —— 字符串处理函数

参考:IDL_String Methods


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 

====<<<< 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
 02STRCMP 

====<<<< 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) 
 03STRMATCH 

====<<<< 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') 
 04STRCOMPRESS 

====<<<< Description>>>>====

将字符串中的空格和 Tab 等压缩成一个空格。
----------------------------------------------------------------------------------

====<<<< Syntax>>>>====

STRCOMPRESS(String, /REMOVE_ALL)
----------------------------------------------------------------------------------

====<<<< Parameters>>>>====

◈  REMOVE_ALL:删除所有空格

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

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

====<<<< Description>>>>====

 将字符串数组合并成一个字符串。
----------------------------------------------------------------------------------

====<<<< Syntax>>>>====

STRJOIN(String [, Delimiter], /SINGLE)
----------------------------------------------------------------------------------

====<<<< Parameters>>>>====

◈  String:字符串数组
◈  Delimiter:用于连接数组的分隔符

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

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

====<<<< Description>>>>====

返回字符串的长度。
----------------------------------------------------------------------------------

====<<<< Syntax>>>>====

STRLEN(Expression)
----------------------------------------------------------------------------------

====<<<< Parameters>>>>====

◈  Expression:字符串表达式,如果不是字符串则按照默认规则转换成字符串进行计算,例如整数;如果是数组则按照与原数组一致的结构返回每一个要素的长度。

 
IDL> strlen(5)
           8
IDL> strlen(['a', 'abc', 'alex'])
           1           3           4
IDL> strlen('alex' + 'lee')
           7
 07STRPOS 

====<<<< 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)
 08STRMID 

====<<<< 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) 
 09STRPUT 

====<<<< 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 
 10STRSPLIT 

====<<<< 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)
 11STRTRIM 

====<<<< Description>>>>====

删除字符串前后的空格。
----------------------------------------------------------------------------------

====<<<< Syntax>>>>====

STRTRIM(String [, Flag])
----------------------------------------------------------------------------------

====<<<< Parameters>>>>====

◈  Flag
  0:后空格删除,默认值
  1:前空格删除
  2:前后空格均删除

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

====<<<< Description>>>>====

字符串大写。
----------------------------------------------------------------------------------

====<<<< Parameters>>>>====

STRUPCASE(String)

 

 

 13STRLOWCASE
 

====<<<< Description>>>>====

字符串小写。
----------------------------------------------------------------------------------

====<<<< Parameters>>>>====

STRLOWCASE(String)

  
14WHERE 

====<<<< 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

   

免责声明:文章转载自《【216】◀▶ IDL 字符串操作说明 (黑底)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux命令集合JavaScript打印杨辉三角下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringBoot集成redisson分布式锁

原文链接:https://blog.csdn.net/sinat_25295611/article/details/80420086 https://www.cnblogs.com/yangzhilong/p/7605807.html 业务场景:在电商项目中,往往会有这样的一个功能设计,当用户下单后一段时间没有付款,系统就会在超时后关闭该订单。 通常我们会...

bootstrap-datepicker限定可选时间范围

此项目是bootstrap-datetimepicker 项目的一个分支,原项目不支持 Time选择。其它部分也进行了改进、增强,例如 load过程增加了对 ISO-8601 日期格式的支持。文档是拷贝/粘贴字原项目的文档,并且加入了更多细节说明。 别犹豫了,下载下来试试吧 ! 下载 ZIP 包 此地址可以克隆或fork本项目git clone gi...

JDBC存储过程

CallableStatement     专执行存储过程的接口,继承了Statement接口   常用方法:     boolean execute(): 执行sql语句,返回true,第一个sql语句的结果是ResultSet;否则,第一个sql语句返回的是受影响的行。     getResultSet():用于获取执行"select"语句后的查询结...

C++ Primer第5版 第四章课后练习答案

练习4.1 105 练习4.2 (a) *(vec.begin())  (b) (*vec.begin()+1) 练习4.3 可以,不过这需要程序员对于编译器优化过程有更深入的了解。 练习4.4 12 / 3 * 4 + 5 * 15 + 24 % 4 / 2;/*结果是91*/12 / 3 * (4 + 5) * 15 + 24 % 4 / 2;/*结果...

SqlLite 简明教程

SQL DML 和 DDL可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。注:"--"双减号为行注释SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。查询和更新指令构成了 SQL 的 DML 部分:SELECT - 从数据库表中获取数据UPDATE - 更新数据库表...

c#定时器Timer

C# Timer用法有哪些呢?我们在使用C# Timer时都会有自己的一些总结,那么这里向你介绍3种方法,希望对你了解和学习C# Timer使用的方法有所帮助。 关于C# Timer类 在C#里关于定时器类就有3个 C# Timer使用的方法1.定义在System.Windows.Forms里 C# Timer使用的方法2.定义在System.Thread...