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

最新文章

  1. 【poj2455】 Secret Milking Machine
  2. jsoup解析HTML
  3. Effective C++ -----条款11: 在operator=中处理“自我赋值”
  4. JVM性能监控工具-Jvisualvm
  5. 复制本贴地址传给QQ/MSN好友的代码
  6. Crashing Robots 分类: POJ 2015-06-29 11:44 10人阅读 评论(0) 收藏
  7. No.005 Longest Palindromic Substring
  8. 在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境
  9. CSS content内容生成技术以及应用(转)
  10. extjs下拉框添加复选框
  11. IIS下 Yii Url重写
  12. SDK Hello world(直接使用SDK封装)
  13. MYSQL最大连接数修改
  14. 201521123115 《Java程序设计》第5周学习总结
  15. 【CJOJ2316】【模板】可持久化线段树
  16. STL容器的基本特性和特征
  17. JDBC-Oracle连接教程
  18. Echars 地图属性详解
  19. python---面对对象的三大特征
  20. swift语言的特征:类型系统与函数式编程:swift是面向类型和面向函数编程的语言

热门文章

  1. 微信小程序开发心得--动画机制
  2. C# 索引器简介
  3. 我的hibernate学习记录(一)
  4. BGP基础【第三部】
  5. 自制tunnel口建虚拟专网实验
  6. ★浅谈Spanking情节
  7. 结对编程-四则运算生成程序-GUI界面
  8. JAVA基础第一组(前5道题)
  9. 结对作业1--基于GUI的四则运算
  10. Java课程设计----仿Windows标准型计算器