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

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7903|回复: 0

去除字符串中空格的Matlab方法

[复制链接]

123

主题

207

帖子

2992

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2992
发表于 2018-7-20 03:58:18 | 显示全部楼层 |阅读模式
本帖最后由 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删除前导和尾随空白字符,等等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|52matlab技术网站 ( 粤ICP备14005920号-5 )

GMT+8, 2024-3-29 16:33 , Processed in 0.066880 second(s), 21 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表