如何在 MATLAB 中查找字符实体



我有字符串"Saraswathi"并使用deblank来删除尾随的空格,但没有成功,因为它不是末尾的空格,而必须是其他东西。如何在 Matlab 中找出它到底是什么?

在下面的代码中,aa 是 excel 数据表中单元格中的原始字符串,aaa 是我复制的带有尾随空格的相同字符串。显然 aa ~= aaa 表示 aa 中的尾随空间是别的东西。我想在字符串 aa 中消除任何类型的拖拉字符。如何在 Matlab 中实现这一点?

K>> aa
aa = 
    "Saraswathi "
K>> aaa
aaa = 
    "Saraswathi "
K>> aa == aaa
ans =
  logical
   0

经过进一步挖掘,很明显 aa 中的尾随字符是 ASCII 160,在 Matlab 文档中通过去空白明确定义为不可删除。还有其他方法可以从字符串中删除此 ASCII 160 吗?

K>> double(convertStringsToChars(aa))
ans =
    83    97   114    97   115   119    97   116   104   105   160
K>> double(convertStringsToChars(aaa))
ans =
    83    97   114    97   115   119    97   116   104   105    32

如果您知道此字符是字符串的最后一个元素,也许这会有所帮助

aa = aa(1:end-1)
> ans =
> 
>     'Saraswathi'

另一种解决方法,稍微复杂一点的是:

strtrim(strrep(aa,sprintf('%c',160),' '))

strrep 函数将 ASCII 160 字符替换为空格,strtrim 将删除空格

最新更新