matlab 字符串替换

来源:互联网 发布:大连淘宝美工学校 编辑:程序博客网 时间:2024/06/10 02:08

先看题目,来自佐治亚理工学院

这里写图片描述

题干说的很明确,替换字符串

那么matlab中内置替换字符串函数strrep,但是会出现问题
这里写图片描述

其中我们想把get都替换为MAKE,但是together中的get也被替换了,这不是我们想要的。

解决思路:

1、将字符串中的单词提取出来,放在一个元组中
2、匹配,此处用strncmp而不用strcmp,是因为被分割的最后一个单词会带标点符号,如果用strcmp比较会将标点考虑在比较范畴内,故有bug。将所需的字符串统统替换。
3、重新构造字符串

function str=replaceStr(textBlock,wordA,wordB)    str='';   strArray=regexp(textBlock, ' ', 'split');   for i=1:length(strArray)       if strncmp(strArray(i),wordA,length(wordA))           strArray{i}=wordB;       end   end   for i=1:length(strArray)       if i==1               str=strArray{i};       else           str=strcat(str,{32},strArray(i));       end   endend
1 0
原创粉丝点击