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是用户可以任意 ...
随机推荐
- 使用设置sa用户登录sql server2008
今天在net项目中添加数据库过程中出现了小问题,就是使用sql server身份验证没登录成功,经过一番调试,终于解决问题. 使用sa账户登录sql server 2008 的方法步骤如下: 1.首先 ...
- 团队作业8——Beta 阶段冲刺5th day
一.当天站立式会议 二.每个人的工作 (1)昨天已完成的工作(具体在表格中) 支付功能测试 (2)今天计划完成的工作(具体如下) 完善订单功能 (3)工作中遇到的困难(在表格中) 成员 昨天已完成的工 ...
- Web编程:JSP环境安装与配置
Web服务器:Tomcat 数据库服务器:暂时未使用 集成开发环境:eclipse 要运行JSP程序,首先要安装JDK(Java Developer Kit),并且还要配置运行Java程序的环境变量. ...
- 201521123073《Java程序设计》第4周学习总结
一. 本周学习总结 二. 书面作业 1.注释的应用 2.面向对象设计(大作业1,非常重要) 2.1 将在网上商城购物或者在班级博客进行学习这一过程,描述成一个故事.(不得少于50字,参考QQ群中PPT ...
- 数据结构与算法->树->2-3-4树的查找,添加,删除(Java)
代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 目录 一. 2-3-4树的定义 二. 2-3-4树数据结构定义 三. 2-3-4树的可以得到 ...
- Java Map对象的遍历
一般情况下Map的实现类中用的最多的是 HashMap . Map的遍历也就是迭代 1. 在for-each循环中使用entries来遍历 (既要取键,又要取值) Map<String, St ...
- 【转】SWT/JFace的对话框
一.MessageDialog ,MessageDialog的用法很简单 MessageDialog.openInfomation(shell,title,message); ...
- hibernate中Query的list和iterator区别(续)
打开cache后query的list和iterator方法区别 将query 的cache打开的话,缓存的是query本身,以hql 生成的 sql ,再加上参数,分页等信息做为key值,而不是que ...
- Java定时任务调度详解
前言 在实际项目开发中,除了Web应用.SOA服务外,还有一类不可缺少的,那就是定时任务调度.定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券 ...
- html5新特性与HTML的区别
* HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加. 绘画 canvas; 用于媒介回放的 video 和 audio 元素; 本地离线存储 localSt ...