IDL 字符串
1.创建字符串
字符串和字符串数组通过赋值或函数方式来创建。在IDL字符串用" "或' '括起来表示。
IDL> s1="abcdef"
IDL> help,s1
S1 STRING = 'abcdef'
IDL> s2=strarr(4)
IDL> help,s2
S2 STRING = Array[4]
以"为首的字符串的首字符不能为数字,因为以"开头的数字串代表一个8进制数,如"11表示8进制的11,即10进制的9
IDL> help,"11
<Expression> INT = 9
当字符串中需要包含'或"时,可以再字符串里面写两个同样的'或"符号,示例代码如下
IDL> s1="abcdef"
IDL> help,s1
S1 STRING = 'abcdef'
IDL> s2="a'b'c"
IDL> help,s2
S2 STRING = 'a'b'c'
IDL> s3='ab"c'
IDL> help,s3
S3 STRING = 'ab"c'
IDL> s4="ab""""c"
IDL> help,s4
S4 STRING = 'ab""c'
2.字符串连接
直接用加号“+”
IDL> s1="abc"
IDL> s2="def"
IDL> s3=s1+s2
IDL> help,s3
S3 STRING = 'abcdef'
3.字符串转换
字符串可以直接转换为字节类型(byte),而整型(int)、浮点型(float)等其他类型不允许直接转换,需要先将字符串转换为子姐姐类型在转换为其他类型;逆变换也是如此。
IDL> s1="abc"
IDL> print,byte(s1)
97 98 99
IDL> print,fix(s1)
% Type conversion error: Unable to convert given STRING to Integer.
% Detected at: $MAIN$
0
IDL> print,fix(byte(s1))
97 98 99
IDL> print,string([97,98,99])
97 98 99
IDL> print,string(byte([97,98,99]))
abc
4.处理函数
字符串操作都是通过字符串处理函数来实现的
(1) 字符串截取
利用字符串操作函数提取采集时间
IDL> ;文件完整路径
IDL> file='c:\temp\AMOD0320040707140331.hdf'
IDL> ;获取文件完整路径的文件名
IDL> basename=file_baseName(file)
IDL> print,basename
AMOD0320040707140331
IDL> ;获取文件名中的时间部分字符
IDL> print,strMid(basename,6,8)
20040707
基于文件名计算文件名的扩展名的代码
IDL> file='c:\temp\AMOD0320040707140331.hdf'
IDL> basename=file_basename(file)
IDL> ;查找文件名中“.”的位置
IDL> pPos=STRPOS(baseName,".",/REVERSE_SEARCH)
IDL> ;如存在“.”则输出大写格式的扩展名
IDL> if pPos [0] -1 then print,StrUpCase(StrMid(basename,pPos[0]+1,3))
HDF
(2) 多字串截取
IDL> str='abcdefghijklmnopqrst'
IDL> ;数组截取可以彩玉下标数组的方式
IDL> str1=strmid(str,indgen(4)*5,5)
IDL> help,srt1
SRT1 UNDEFINED = <Undefined>
IDL> print,str1
abcde fghij klmno pqrst
(3) 空格去除
函数有StrTrim和StrCompress,示例代码如下:
IDL> ;定义整型变量
IDL> var=41
IDL> ;转换为字符串
IDL> str=string(var)
IDL> ;转换后前面包含空格
IDL> help,str
STR STRING = ' 41'
IDL> ;定义前后都包含空格的字符串
IDL> str=" 6 "
IDL> ;StrTrim函数去除前后空格,参数1只去除前面的空格,参数2去除前后的空格
IDL> help,strtrim(str,2)
<Expression> STRING = '6'
IDL> ;字符串前后和中间均有空格
IDL> str=" 5 6 7 "
IDL> ;函数StrCompress去除字符串中所有的空格
IDL> help,StrCompress(str,/Remove_all)
<Expression> STRING = '567'
(4) 数组处理
利用字符串操作函数求出整型数组中以2开头的子数组
IDL> arr=[12,23,45,65,25]
IDL> print,arr[where(strmatch(strtrim(arr,2),'2*') eq 1)]
23 25
5.特殊字符
无法打印输出的特殊字符
ASCII字符 | 数据值(字节型) |
Bell | 7B |
后退 | 8B |
水平TAB | 9B |
换行 | 10B |
数值TAB | 11B |
走纸 | 12B |
回车 | 13B |
ESC(取消) | 27B |
IDL 字符串的更多相关文章
- 【216】◀▶ IDL 字符串操作说明 (黑底)
参考:String Processing Routines —— 字符串处理函数 参考:IDL_String Methods 01 STRING 返回字符串. 02 STRCMP 比较字符串, ...
- 【216】◀▶ IDL 字符串操作说明
参考:String Processing Routines —— 字符串处理函数 01 STRING 返回字符串. 02 STRCMP 比较字符串,一样返回1,不一样返回0,默认大小写敏感. ...
- RPC远程过程调用实例详解
1.创建IDL文件,定义接口. IDL文件可以由uuidgen.exe创建. 首先找到系统中uuidgen.exe的位置,如:C:\Program Files\Microsoft Visual Stu ...
- Core Java 总结(字符和字符串类问题)
所有代码均在本地编译运行测试,环境为 Windows7 32位机器 + eclipse Mars.2 Release (4.5.2) 2016-10-17 整理 字符,字符串类问题 正则表达式问题 J ...
- 【232】◀▶ IDL显示地理图像
参考: 01 IMAGE 将图像数据以图形窗体的形式显示. 02 COLORBAR 在已经存在的IDL图形中增加一个colorbar或创建. 03 MAPGRID 在已经存在的IDL地图图 ...
- IDL简介与corba入门案例
IDL接口定义语言简介 IDL用中立语言的方式进行描述,能使软件组建(不同语言编写的)间相互通信. IDL提供了一个桥来连接不同的系统. Corba 上的服务用IDL描述,将被映射为某种程序设计语 ...
- IDL与C#混合编程技术
C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言.C#与Java有很多的相似之处,包括了诸如单一继承.界面.与Java几乎同样的语法,和编译成中间代码再运行的过程.它又借鉴了D ...
- IDL基础
先列后行 arr=indgen(3,4) SIZE(arr,/dimensions) print ,where(arr gt7) print,arr[where(arr gt 7)] print,wh ...
- 关于文件读写IDL
1.打开文件 IDL从磁盘上的文件读写数据,必须首先把一盒逻辑设备号连接到一个指定的文件,然后进行文件操作,如打开,关闭和读取等.IDL中的逻辑设备号的范围是-2——128,其中1-99是用户可以任意 ...
随机推荐
- js获取地址栏参数数据
// 获取指定地址栏数据//name:参数名 function GetQueryString(name, url) { var reg = new RegExp("(^|&)&quo ...
- 西门子 PLC SFC14/15 80B1故障
SFC14/15 S7-300/400/1500 PLC中,SFC14/15用于将分站的IO数据批量读取到DB块中.MOVE(L T)指令只能最多传送4byte.因此,使用SFC14/15能够简化程序 ...
- POJ 3463 最(次)短路条数
Sightseeing Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9497 Accepted: 3340 Descr ...
- PHP中如何调试?
比如有个数组: $arr = array('A' => 'bobi','B' => 'hehe'); echo $arr; //Array 只打印出了变量 ...
- CentOS7中将home迁移到/下的命令
CentOS7中将home迁移到/下的命令
# mkdir -p /backup # cp -r /home/* /backup # umount /home # df -hl # fdisk -l # lvremove /dev/cento ...
- 201521123084 《Java程序设计》第3周学习总结
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 本周学习总结 ...
- 201521123005 《java程序设计》 第二周学习总结
1. 本周学习总结 ·java中的字符串及String的用法 "=="比较的是两字符串的地址,而不是内容 String类的对象是不可变的,创建之后不能进行修改 ·数组Array的用 ...
- Java 第十四周总结
1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 2. 使用JDBC连接数据库与Statement 2.1 使用Statement操作数据库.(粘贴一段你认为比较有价值的代码,出现学 ...
- 201521123015 《Java程序设计》第13周学习总结
1. 本周学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? IP地址不同 ...
- 子元素设定margin值会影响父元素
有些情况下,我们设定父元素下的子元素margin值时,父元素会被影响. 这是个常见问题,而且只在标准浏览器下 (FirfFox.Chrome.Opera.Sarfi)产生问题,IE下反而表现良好. 例 ...