我有字符串"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 将删除空格