找到字符串
多年来,MATLAB已经成为一个更友好的环境来处理字符信息。MATLAB具有一套丰富的文本处理函数,从简单到全能正则表达式功能(覆盖在这里).今天我将介绍一些简单而又非常有用的字符串函数。
内容
使用strfind
- 首选
strfind (' abc ', ' ')
- 不推荐
中(“abc”,“a”)
这种用法可能会稍微慢一些,并且可能会导致混淆,因为无法知道在另一个字符串中找到了哪个字符串。
- 不推荐
找到(' abc ' = = ' a ')
这个用法大约是它的5倍strfind,并且不健壮,因为只有当其中一个参数to时,它才能工作==是标量。
- 好处
-速度的提高,更少的内存(没有临时的逻辑语句的结果在find -没有歧义的字符串,如果想以后的索引,如果需要-代码是健壮的,相比之下,不能处理一般的情况,也不像find那样快。
使用strrep
使用strrep而不是通过索引替换值。
- 首选(从字符串中删除空格)
STR = strrep(STR,'', ")
- 不推荐
find(str==' ');Str (Str ==' ') = []
- 首选(删除&从字符串,例如菜单加速器)
str = strrep (str,‘&’,”)
- 不推荐
menuLabelStr(找到(menuLabelStr =='&')) = []
- 好处
-速度-可读性-更一般的,即替换字符串不需要是相同的大小(或空),作为他们替换的字符串
使用strncmp
使用strncmp而不是strmatch用文字的第二个输入。
- 首选
strncmp (str,字符串,长度(str))
- 不推荐
strmatch (str,“字符串”)
- 不推荐
strmatch (str,“弦”、“准确”)
- 好处
——速度
- 请注意
strmatch返回找到字符串的索引,而STRNCMP返回true/false,所以升级代码不仅仅需要复制/粘贴。
使用strcmpi
使用strcmpi而不是使用比较字符串与上或较低的.
- 首选
strcmpi (str lcstring)
- 不推荐
比较字符串(低(str),“lcstring”)
- 好处
-速度-更少的函数调用-更少的临时变量-可读性
使用ismember
使用ismember向量化字符串查找操作。
- 首选
宠物={“猫”、“狗”、“狗”、“狗”、“长颈鹿”;“仓鼠”}={‘猫’‘狗’}物种(tf, loc) = ismember(宠物,物种)
- 不推荐
loc = 0(长度(宠物),1);For k = 1:length(species) tf = strcmp(pets, species(k));loc (tf) = k;结束
- 好处
——速度
- 请注意
strfind在字符串的单元格数组上工作,并在单元格数组中返回结果,带有相关的索引。它做部分匹配。- ismember要求精确匹配。输出与strfind的不同,因此编码不仅仅是直接替换的问题。
总结
我已经讨论了MATLAB中一些简单的字符串函数。你有一些简单的字符串建议给用户吗?把你的想法在这里.
- 类别:
- 字符串
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。