前言
今天在搞一个log解析工具的时候,发现一个非常神奇的现象,就是: ’ ’ ~= ’ '。稍微深入了解了一下才发现,空格和空格之间竟然又这么多差别。。。matlab中有非常多种‘空格’,或者说长得像空格的东西。
为了防止自己忘记,记录在此。
各种长得像空格的东西
char(0)
这是null,表示字符串结尾,看起来是matlab 的一些函数读文件的时候生成出来的,例如
c = sprintf('\0');
这个玩意折腾了我半天,如果某个 char 数组(char_tmp)末尾有这个char(0),要去掉这个玩意,可以用
strrep(char_tmp,char(0),'');
表示将char(0)替换成空
或者
deblank(char_tmp);
表示去掉字符串末尾的尾随空白。
这个deblank会删除 char(0) 和 char(32),但是不会删除 char(160),别的没试。如果有想删删不掉的空白,可以试试这个 deblank
后面有更深的理解的话,再补充。
char(32)
这是标准空白字符,当我们直接输入 ’ ’ 时,得到的就是这个。或者blanks(1),得到的也是这个。
因此,这个是最常见的。
char(133)
下一行
char(160)
不间断空格