先看题目,来自佐治亚理工学院
题干说的很明确,替换字符串
那么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
end
end