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是用户可以任意 ...
随机推荐
- Ljava.lang.Object;@ba8a1dc
因为你从数据库读出数据后,存入到list集合上时,如果你没有指定要存入的数据的类型,系统会自动给你赋一个object类型,他是所以类的鼻祖,你取出数据要进行转型,转化成你自己想要的数据类型才能显示.它 ...
- 交叉编译器安装 gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203)
安装环境 :ubuntu 14.04 安装包 :toolchain.tar.gz 编译器版本:gcc version 4.3.3 (Sourcery G++ Lite 2009q1- ...
- 201521123115《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123049 《JAVA程序设计》 第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java ...
- 201521123042《Java程序》第二周总结
1. 本周学习总结 了解枚举类型的使用方法. 学会使用ArrayList替换数组,并且学会运用相关函数,例如: strList.contains(str)(判断数组中是否包含字符串str,包含则返回t ...
- 201521123034《Java程序设计》第十一周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 多线程的冲突 互斥共享(有时两个或两个以上的线程需要同时对 而线程之间如果不加以控制,会产生一种情况-竞争) sy ...
- 201521123031 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...
- Log4J:Log4J三大组件:Logger+Appender+Layout 格式化编程详解
快速了解Log4J Log4J的三个组件: Logger:日志记录器,负责收集处理日志记录 (如何处理日志) Appender:日志输出目的地,负责日志的输出 (输出到什么 地方) Layo ...
- Eclipse rap 富客户端开发总结(9) : rap上传与下载
一 上传 上传即将文件上传到服务器上,在客户端需要写相应的脚本,服务器端需要注册相应的 handle 接受客户端的请求. 原理: Rap 的上传和下载是通过普通的 web 的方式进行上传和下载的 , ...
- java.lang.IllegalArgumentException: node to traverse cannot be null!
查看HQL的语句是否写错了,是否有在From后面加空格.我就是没有加空格报了错误! return sessionFactory.getCurrentSession().createQuery(&quo ...