博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【216】◀▶ IDL 字符串操作说明 (黑底)
阅读量:6254 次
发布时间:2019-06-22

本文共 8021 字,大约阅读时间需要 26 分钟。

参考:

参考:


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

 

   

转载于:https://www.cnblogs.com/alex-bn-lee/p/5802596.html

你可能感兴趣的文章
Running nested VM on vSphere 5
查看>>
简单lnmp搭建及nginx反代模型的实现
查看>>
设计与梳理企业二级流程的路线方法
查看>>
搅拌站ERP管理系统-砼友ERP
查看>>
我的友情链接
查看>>
How to automatically restart Apache Tomcat when...
查看>>
我的友情链接
查看>>
Java 常用操作
查看>>
Python正则表达式指南
查看>>
项目开发经验谈之:项目到底谁说了算
查看>>
试试Markdown?
查看>>
oracle CKPT进程详解
查看>>
使用css3制作渐变分割线
查看>>
linux下node环境的搭建
查看>>
将sublime打造成python的IDE开发工具
查看>>
Mac Homebrew 利器
查看>>
Delphi中获取Unix时间戳及注意事项
查看>>
8月5日起OCP电子证书正式推行
查看>>
【原创】DataNode源码演绎 第一回
查看>>
垃圾回收概念与算法
查看>>