免费seo网站推荐一下,云南发布紧急通知,苏州网站开发公司兴田德润在哪儿,wordpress图片云盘1. 创建字符串 IDL中可以用单引号‘’或双引号来创建字符转
a hlz
b hlz
a eq b1 创建字符串数组#xff0c;可以利用中括号[]和逗号,相组合的方式进行创建
a [Hlz,XMU,厦门]
a
Hlz
XMU
厦门
来创建字符转
a hlz
b hlz
a eq b1 创建字符串数组可以利用中括号[]和逗号,相组合的方式进行创建
a [Hlz,XMU,厦门]
a
Hlz
XMU
厦门
help,a
A STRING Array[3]
a[1] ; 字符串数组是可以被索引只能索引整个元素无法索引某个元素组成
XMU
注字符串是无法索引的字符串数组可以可以用字符串提取截取函数Strmid()实现这个往往会用到字符转长度查看函数Strlen()、子字符串搜索函数Strpos()、去除字符串首尾空格函数Strtrim()。
语法Result STRMID(Expression, First_Character [, Length] , /REVERSE_OFFSET )
语法Result STRLEN(Expression)
语法Result STRPOS( Expression, Search_String [, Pos], /REVERSE_OFFSET, /REVERSE_SEARCH )
语法Result STRTRIM( String [, Flag] )
a hlz-xiamenuniversuty
a[2]
% Attempt to subscript A with INT ( 2) is out of range.
% Execution halted at: $MAIN$
a hlz-xiamenuniversuty ; 包含前后空格的字符串a
print,Strlen(a) ; 查看字符串a的长度22
a Strtrim(a,2) ; 移除两端空格0移除右端所有空格1移除左端所有空格2移除左右两端所有空格
print,Strlen(a)20
; 提取字符串中xiamen子字符串
index1 Strpos(a,xiamen) ; 字符串xiamen在字符串a的的位置返回子字符串的起始位置若不存在则返回-1
index14
leng_str Strlen(xiamen) ; 字符串xiamen的长度
leng_str6
b Strmid(a,index1,leng_str) ; 提取字符串a中的子字符串
b
xiamen创建空字符串可以利用StrArr()函数进行创建
语法Result STRARR(D1[, ..., D8])
S STRARR(4,3) ; 创建4列3行的空的字符串数组
help,S
S STRING Array[4, 3]
S[1,1] ; 查看元素值help,S[1,1] ; 查看元素值
Expression STRING 2. 字符串操作
2.1 字符串的信息 IDL中无法用length对象方法查看字符串的长度可以利用字符转长度查看函数Strlen()查看
a hlz-xiamenuniversuty
a.LENGTH1
a.DIM0
print,Strlen(a)20 当用函数Strlen()查看字符串数组时会实现每个字符串元素的长度。
Files
e:\Test\1.tff
e:\Test\2.jpg
print,Strlen(files)13 13
help,Strlen(files)
Expression LONG Array[2] 此外字符串数组中元素的个数可以用length方法、函数N_elements()获取。
Files
e:\Test\1.tff
e:\Test\2.jpg
print,files.LENGTH2
print,N_elements(files)2 2.2 字符串连接 IDL中字符串连接和python一样可以直接相加
a hlz
b xmu
c a\b.jpg
c
hlz\xmu.jpg 字符串数组元素之间相连接可以使用jion方法进行连接
a [Hlz,jiangxiprovince,jingdezhenCity]
b a.Join(\) ; 将a中所有元素用\相连接
b
Hlz\jiangxiprovince\jingdezhenCity 注当将字符串连接起来组成一个文件路径是最好用Path_sep()函数该函数可以获取当前系统的分隔符linux和win不同分隔符是不一样的win的分隔符为‘\’linux的分隔符为‘/’。
2.3 字符串转换 字符串大小写转化函数 Strlowcase()将大写字符转化为小写字符 Strupcase()将小写字符转化为大写字符
语法Result STRLOWCASE(String)
语法Result STRUPCASE(String)
a Hulz_Jiangxi_OK
print,Strlowcase(a)
hulz_jiangxi_ok
print,Strupcase(a)
HULZ_JIANGXI_OK 首字母大写那么问题来了如何将首字母转化为大写其余字母小写。 首先将字母转化为小写提取除首字母以外的字符提取第一个字母并转化为大写最后合并。用到了Strlowcase()、Strupcase()、Strmid()函数。
a Hulz_Jiangxi_OK
print,Strlowcase(a) ; 第一步转化为小写
hulz_jiangxi_ok
print,Strmid(Strlowcase(a),1); 第二步提取字符串小写部分
ulz_jiangxi_ok
print,Strupcase(Strmid(Strlowcase(a),0,1)); 第二步提取字符串大写部分
H
print,Strupcase(Strmid(Strlowcase(a),0,1))Strmid(Strlowcase(a),1)第三步合并
Hulz_jiangxi_ok 此外字符串可以直接转化为字节型Byte数据即将字母转化为对应的数字反之亦然。
a hlz
b Byte(a)
b104 108 122
help,b
B BYTE Array[3]
c long(a)
% Type conversion error: Unable to convertgiven STRING to Long.
% Detected at: $MAIN$
d long(Byte(a))
d104 108 122
2.4 字符提取 可以用函数Strmid()实现具体介绍见本博客第1节
2.5 常见的字符串函数
2.5.1 获取文件名 可以用File_basename()函数根据字符串获取文件名 语法Result File_basename(Path [, RemoveSuffix] [, /FOLD_CASE])
fn File_basename(e:\Test\sentinel1.tiff)
fn
sentinel1.tiff
2.5.2 获取文件路径 可以用File_dirname()函数根据字符串获取文件路径 语法Result FILE_DIRNAME(Path [, /MARK_DIRECTORY])
dn File_dirname(e:\Test\sentinel1.tiff)
dn
e:\Test
2.5.3 获取编译文件的完整路径 可以用Routine_filepath()函数根据编译的文件名获取该文件的完整路径字符串。 注需先编译文件才能使用。 语法Result ROUTINE_FILEPATH( [Routine] [, /EITHER] [, /IS_FUNCTION] ) 返回的是一个包含两个元素的结构体Result .Name表示文件名Result.path表示文件路径。 .compile -v D:\Code\IDL\IDL_GUI\源码\chapter05\test_readF.pro
% Compiled module: TEST_READF.ROUTINE_FILEPATH(TEST_READF)
D:\Code\IDL\IDL_GUI\源码\chapter05\test_readF.pro 注在可以利用File_dirname()函数和File_basename()函数获取文件路径和文件名。 2.5.4 字符串比较 字符串比较函数Strcmp()可以比较两个字符串时候一样
语法Result STRCMP( String1, String2 [, N], /FOLD_CASE )
参数N表示只比较前N个字符关键字FOLD_CASE表示区分大小写
a Hlz
b hlz
c Hlz-fox
print,Strcmp(a,b,/Fold_case) ; 是否区分大小写默认不区分1
print,Strcmp(a,b,Fold_case0) ; 区分大小写0
print,Strcmp(a,c) ; 不加参数N0
print,Strcmp(a,c,2) ; 只比较前2个字符1
2.5.5 总结 以下是字符串处理历程来源官方文档 FILE_BASENAME - 返回文件路径的基本名称。 FILE_DIRNAME - 返回文件路径的目录名。 I18N_MULTIBYTETOUTF8 - 将多字节转换为 UTF8。 I18N_MULTIBYTETOWIDECHAR - 将多字节转换为 UTF-16、宽字符 (Unicode)。 I18N_UTF8TOMULTIBYTE - 将 UTF-8 转换为多字节。 I18N_WIDECHARTOMULTIBYTE - 将 UTF-16、宽字符 (Unicode) 转换为多字节。 IDL_BASE64 - 在字节数组和 MIME Base64 编码的标量字符串之间转换。 READS - 从字符串变量执行格式化的输入/输出。 STRCMP - 比较两个字符串。 STRCOMPRESS - 从字符串中删除空格。 STREGEX - 执行正则表达式匹配。 STRING - 将参数转换为字符串类型。 STRJOIN - 将字符串标量或数组折叠成合并的字符串。 STRLEN - 返回字符串的长度。 STRLOWCASE - 将字符串转换为小写。 STRMATCH - 将搜索字符串与输入字符串表达式进行比较。 STRMID - 从字符串中提取子字符串。 STRPOS - 在字符串中查找第一次出现的子字符串。 STRPUT - 将一个字符串的内容插入另一个字符串。 STRSPLIT - 根据指定的模式将其输入字符串参数拆分为单独的子字符串。 STRTRIM - 从字符串中删除前导和/或尾随空格。 STRUPCASE - 将字符串转换为大写。 3. 特殊字符
3.1 包含引号的字符转 字符串中包含引号则最后用另一种引号创建。
例如打印Im Hlz 打印你真棒
print,Im Hlz
Im Hlz
print,Im Hlzprint,Im Hlz^
% Syntax error.
你真棒
print,你真棒 print,你真棒 ^
% Syntax error.print,你真棒 ^
% Illegal character in program text. 如果字符串中既有单引号、又有双引号的字符串该如何处理可以分开输入在合并
print,Im Hlz你真棒!
Im Hlz你真棒!
3.2 特殊字符 略……下次补充
注后续将针对字符串整理相关的函数
不足之处敬请斧正
路漫漫其修远兮吾将上下而求索