本帖最后由 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删除前导和尾随空白字符,等等。
|