设为首页收藏本站

52matlab技术论坛,matlab教程,matlab安装教程,matlab下载

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 241|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2015-3-12 11:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    83

    主题

    144

    帖子

    1296

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    1296
    发表于 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, 2018-11-18 19:04 , Processed in 0.127592 second(s), 30 queries .

    Powered by Discuz! X3.2 Licensed

    © 2001-2013 Comsenz Inc.

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