52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: 去除字符串中空格的Matlab方法 [打印本页]

作者: matlab的旋律    时间: 2018-7-20 03:58
标题: 去除字符串中空格的Matlab方法
本帖最后由 matlab的旋律 于 2018-7-20 04:19 编辑

    在处理字符串时经常遇到的一个问题是:去除字符串中的空格。下面列举几种比较常见的去除字符串中的空格方法:
对字符串 str1 = 'a b  c';%b和c之间有两个空格
        str2 = 'D e f';
        str3 = {str1,str2}
1.replace法
    使用方法为:newStr = strrep(str,old,new) 将 str 中出现的所有 old 都替换为 new。例如:
replaceStr = replace(str1,' ','')
得到
replaceStr=

    'abc'
2.strrep法
      使用方法跟replace函数一致。
3.find法
     查找非零元素的索引和值,在查找字符串的元素使用方法为:find(str 逻辑运算符 char),即查找str中元素跟char的关系。例如下面的集中方法都是等价的:
findStr = str1;
findStr(find(str1 == ' ')) =[]%查找到的空格用空矩阵替代

findStr = str1;
findStr(find(str1 == ' ')) = ''%查找到的空格用空符号替代

findStr = str1;
findStr = findStr(find(str1 ~= ' '))%找出非空格字符
4.findstr法
    查找字符串中子符串的索引, k = findstr(str1,str2),与find不同的是findstr查找的是子符串,即length(str1) >= length(str2), 例如:
findstrStr = str1;
findstrStr(findstr(str1, ' ')) =[]

findstrStr = str1;
findstrStr(findstr(str1, ' ')) = ''
5.strfind法
     使用方法与findstr基本相同,不同的地方是length(str1)与length(str2)的可以是大于等于,也可以是小于,返回的结果是子字符串在叫长字符串中的索引。
6.deblankl法
    deblankl函数可以直接去掉输入字符串的空格,但也会将其中的大写字母变为小写字母,也可以处理字符串组成的元胞数组例如:
deblanklStr = deblankl(str1)
得到
deblanklStr=

    'abc'

deblanklStr = deblankl(str2)%大写字母变成小写
得到
deblanklStr=

    'def'

deblanklStrCell = deblankl(str3)
得到
deblanklStrCell=

  1×2 cell array

    {'abc'}    {'def'}

    这里介绍的都是作者本人用到的一些方法,当然也还有其他实现方式。同时,还有一些去除字符串中特定位置空格的函数,如deblank去掉字符串尾随的空格,strtim删除前导和尾随空白字符,等等。






欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2