参考: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 字符串小写。

序号 名称  

功能说明

  语法 & 举例
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

【216】◀▶ IDL 字符串操作说明 (黑底)的更多相关文章

  1. 【216】◀▶ IDL 字符串操作说明

    参考:String Processing Routines —— 字符串处理函数 01   STRING 返回字符串. 02   STRCMP 比较字符串,一样返回1,不一样返回0,默认大小写敏感. ...

  2. 【215】◀▶ IDL 文件操作说明 (黑底)

    参考:I/O - General File Access Routines —— 基本文件操作函数 01   CD 修改当前的工作空间路径. 02   FILE_SEARCH 对文件名进行特定的查找. ...

  3. IDL 字符串

    1.创建字符串 字符串和字符串数组通过赋值或函数方式来创建.在IDL字符串用" "或' '括起来表示. IDL> s1="abcdef" IDL> ...

  4. 【215】◀▶ IDL 文件操作说明

    参考:I/O - General File Access Routines —— 基本文件操作函数 01   CD 修改当前的工作空间路径. 02   FILE_SEARCH 对文件名进行特定的查找. ...

  5. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  6. C语言学习书籍推荐《明解C语言》下载

    柴田望洋 (作者), 管杰 (译者), 罗勇 (译者) <明解C语言>是日本的C语言经典教材,自出版以来不断重印.修订,被誉为“C语言圣经”.作者在日本IT界家喻户晓,出版过一系列极富影响 ...

  7. RPC远程过程调用实例详解

    1.创建IDL文件,定义接口. IDL文件可以由uuidgen.exe创建. 首先找到系统中uuidgen.exe的位置,如:C:\Program Files\Microsoft Visual Stu ...

  8. Netty之网络编程数据编码

    一.概况 我们在进行网络编程中会把各种数据转换为byte数据以便能在网络上传输,最常见的网络字节序--Little-Endian和Big-Endian,也让好多初进网络编程的新手摸不着头脑,还有按位或 ...

  9. 【224】◀▶ IDL NetCDF 文件操作说明

    参考:I/O - NetCDF Routines —— NetCDF 操作函数 01   NCDF_OPEN 打开一个 NetCDF 文件. 02   NCDF_CLOSE 关闭一个 NetCDF 文 ...

随机推荐

  1. 邻接表的使用及和vector的比較

    这几天碰到一些对建边要求挺高的题目.而vector不好建边,所以学习了邻接表.. 以下是我对邻接表的一些看法. 邻接表的储存方式 邻接表就是就是每一个节点的一个链表,而且是头插法建的链表,这里我们首先 ...

  2. VM不能ping通www.baidu.com的问题【NAT】 更新了【桥接模式】

    NAT模式 1.为NAT设置子网及掩码等信息 点击VMWare菜单栏“编辑” —> 虚拟网络编辑器 [下图第一张图]—> 选中VMnet8(当然这个看自己的设备后缀是多少了,只要外部连接方 ...

  3. kubernetes资源调度之LimitRange

    系列目录 LimitRange从字面意义上来看就是对范围进行限制,实际上是对cpu和内存资源使用范围的限制 前面我们讲到过资源配额,资源配额是对整个名称空间的资源的总限制,是从整体上来限制的,而Lim ...

  4. dwr框架中DWRUtil的方法

    dwr框架中DWRUtil的方法 2008-10-14 17:57:23|  分类: JAVA |  标签: |举报 |字号大中小 订阅     7. util.js 功能 util.js包含了一些工 ...

  5. Visual Studio 2010无法启动调试

    现象:Visual Studio 2010点击调试或者按F5.Visual Studio 2010没有什么反应,但又不报错. 而点击运行不调试(Ctrl+F5)却没有问题. 解决的方法:打开项目属性, ...

  6. Drupal 初次使用感受,兴许补充。

    非常久曾经就接触过.下载下来安装,结果界面太丑,太难看,直接删除. 近期又一次想到开源CMS,好奇看到那么多人推崇drupal.也便下载来又一次研究了下. 刚接触了下.只是总体使用感觉非常差.尤其几个 ...

  7. oracle 控制文件多路复用

    网上有很多关于控制文件的操作,我大概看了下.有很多都是炒来炒去转来转去.下面以自己理解和操作为例来对oracle的控制文件进行下介绍. 首先介绍下控制文件 在oralce数据库中,控制文件是一个很小的 ...

  8. 获取本地IP V4 出现::1

    获取本地IP V4 竟然得到  ::1 和 192.168.x.xxx 多出来一个::1???? 终于在网络找到答案,原来是禁用了IP V6 导致,重新勾选IP V6,或者卸载IP V6 都可以解决问 ...

  9. SQuirreL – Phoenix的GUI

    本文主要介绍如何通过SQuirreL访问Phoenix,以及如何在SQuirreL中配置Phoenix参数. 什么是SQuirrel? SQuirreL SQL Client是一个开源免费软件, 可以 ...

  10. 九度OJ 1142:Biorhythms(生理周期) (中国剩余定理)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:266 解决:189 题目描述: Some people believe that there are three cycles in a p ...