Day14_0.1基础学习MATLAB学习小技巧总结(14)——字符串的比较、查找和替换

 利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。

素材来源“数学建模清风”

特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以移步去链接中的视频,观看学习。也欢迎各位在留言区补充,纠错,讨论。

原素材和学习视频地址:MATLAB教程新手入门篇(上部分)(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1dN4y1Q7Kt/?spm_id_from=333.337.search-card.all.click&vd_source=c06380c48bd362b3f90af762beebf543

 

字符串的比较、查找和替换

1 字符串的比较

比较字符串主要是比较字符串是否相同、字符串中的子串是是否相同和比较字符串的个别字符是否相同,常用的两个比较字符串的函数是strcmp和strncmp

(1)strcmp函数:strcmp(str1,str2)

 比较两个字符串是否相同。相同返回1,不相同返回0。当所比较的两个字符串是单元数组时,返回值为一个列向量,元素为相应行比较的结果。

(2)strncmp函数: strncmp(str1,str2,n)

用于比较两个字符串前面的几个字符是否相同。当字符串前的n个字符相同时,返回1,否则返回0.当所比较的两个字符是单元数组时,返回值为一个列向量,元素为相应行比较的结果。

例:

str1 = ['MATLAB']
str2 = ['MATlab']
strcmp(str1,str2)
strncmp(str1,str2,3)
strncmp(str1,str2,4)

除了利用上面两个函数进行比较之外,还可以通过简单运算比较两个字符串。当两个字符串拥有相同的维数时,可以利用 MATLAB 运算法则,对字符数组进行比较。字符数组的比较与数值数组的比较后基本相同,不同之处在于:字符数组在比较时进行比较的是字符的 ASCI码值。进行比较后返回的结果为一个数值向量,元素为对应字符比较的结果。需要注意的是:在利用这些运算比较字符串时,相互比较的两个字符串必须有相同数目的元素。

各运算符及其意义如下表:

例:

str1 = ['MATLAB']
str2 = ['MATlab']
str1==str2
str1=='A'
str1~=str2
str1>str2
str1<str2
str1>=str2
str1<=str2

 

该例中,首先判断两个字符串是否相同,字符串“MATLAB”和“MATlab”的前三个字符相同,后面三个字符不同,因此返回值为三个1和三个0。第二条语句与此类似。第三条语句比较字符串str1中的字符是否为“M”,返回结果为第一个元素为1、后面五个元素为0的数组,表示该字符串的第一个字符为“M”
除上面介绍的两个字符串之间的比较之外,MATLAB还可以判断字符串中的字符是否为空格字符或字母。实现这两个功能的函数分别为isspace和isleter。

(1)isspace函数:isspace(str)

判断字符串str中的字符是否为空格,是空格字符,返回1,否则返回0.

(2)isletter函数:isletter(str)

判断字符串str中的字符是否为字母,是字母,则返回1,否则返回0.

2 字符串的查找和替换 

常用的查找函数有:findstr、strmatch、strrep、strtok函数等

函数名用法意义
findstr函数findstr(str1,str2)用于在一个字符串中查找子字符串,返回子字符串出现的起始位置。执行时系统首先判断两个字符串的长短,然后在长的字符串中检索短的子字符串。
strmatch函数strmatch(‘str’,XXX)在字符数组的每一行中查找是否存在待查找的字符串,存在,则返回1,否则返回 0。用法为 strmatch('str,XXX),查找 st 中以 XXX 开头的字符串。另外,可以使用 strmatch(',XXX,exact)查找精确包含 STRS 的字符串。
strrep函数str=strrep(str1,str2,str3)查找字符串中的子字符串并将其替换为另一个子字符串。
strtok函数strtok(str)该函数用于选取字符串中的一部分

3 字符串与数值之间的转换

常用的字符串转换函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值