字符串处理方法
在MATLAB中,字符串是用单引号括起来的字符序列。
一、如何创建字符串以及字符串基本函数
例如,在MATLAB命令行窗口输入:
xm='central south university'
xm(1:3)
按下回车,显示结果
ans =
'cen'
可见显示的是输入字符串的第一到第三个字符。
若字符串中的字符含有单引号,则该单引号字符要用两个单引号来表示。
xm='i''m a teacher'
xm =
'i'm a teacher'
例题:建立一个字符串向量,然后对该向量作如下处理:
(1) 取1~5个字符组成的字符串。
(2) 将字符串倒过来重新排列。
(3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。
(4) 统计字符串小写字母的个数。
解答(1)ch =
'ABc123d4e56fg9'
>> subch=ch(1:5)
subch =
'ABc12'
(2)ch =
'ABc123d4e56fg9'
>> revch=ch(end:-1:1)
revch =
'9gf65e4d321cBA'
(3)k=find(ch>=’a’&ch<=’z’)
K=
3 7 9 13
ch(k)=ch(k)-‘a’+’A’
ch=ABC123D4E56FG9
(4) length(k)
ans=
4
二、字符串与数值之间的转换
(1) abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。
(2) char函数可以把ASCII码矩阵转换为字符串矩阵。
S1=‘MATLAB’;
a=abs(s1)
a=77 65 84 76 65 66
char(a+32)
ans=matlab
(3) 字符串的比较
字符串的比较有两种方法:利用关系运算符或字符串比较函数。
关系运算符比较:两个字符串里的每个字符依次按ASCII值大小逐个进行比较,比较的结果是一个数值向量,向量中的元素要么是1,要么是0。例如:‘www0’>=’W123’
Ans=1 1 1 0
字符串比较函数用于判断字符串是否相等,有四种比较方式,函数如下:
① strcmp(s1,s2):用来判断字符串s1和s2是否相等,如果相等,返回结果为1,否则返回0;
② strncmp(s1,s2,n):用来比较两个字符串前n个字符是否相等,如果相等,返回1,否则返回0;
③ strcmpi(s1,s2):在忽略字母大小写前提下,比较字符串s1和s2是否相等,如果相等,返回1,否则返回0;
④ sterncmpi(s1,s2,n):在忽略字符串大小写前提下,比较两个字符串前n个字符是否相等,如果相等,返回1,否则返回0。
(4) 字符串的查找与替换
findstr(s1,s2):返回短字符串在长字符串中的开始位置。
strrep(s1,s2,s3):将字符串s1中的所有子字符串s2替换为字符串s3。