是否有一个简单的函数 f ,以便
f(' hello, world! ' ) == 'hello, world!'
我可以使用正则表达式删除空格(或任何字符),但这似乎是对问题应用锤子。我想知道是否有一些我错过的简单。
答案 0 :(得分:7)
无需使用锤子,只需使用strtrim
。
来自文档:
S = strtrim(str)返回带有所有前导和的字符串str的副本 删除了尾随空白字符。一个白色空间的角色是 isspace函数返回逻辑1(true)的那个。
答案 1 :(得分:5)
要删除字符串一侧的空格,请使用Dim cCont As Control
For Each cCont In Me.Controls
If TypeName(cCont) = "CheckBox" Then
cCont.value = True
End If
Next cCont
命令。
答案 2 :(得分:1)
自Matlab版本2016b起,您可以使用内置的strip()
函数。
对于那些没有更新的matlab版本的人,这里是我自定义的函数,当strCharacter作为strip()传入时,它也没有精确的一个char的限制
function result = trim(s,varargin)
% Merge multiple spaces to single space in the middle
% remove trailing/leading spaces
% trim(s [, how [,chars]])
% s: a string
% how: a num 1=left only;
% 2=right only;
% 3=left and right;
% 4 (default)=left and right and merge middle
% chars: if not given (default), space
% if given, remove consecutive character instead
%
if nargin == 1
how = 4;
chars = ' ';
elseif nargin == 2
how = varargin{1};
chars = ' ';
elseif nargin == 3
how = varargin{1};
chars = varargin{2};
end % end if nargin
if strcmp(chars,' '), chars='\s'; end
if how==1
expression = sprintf('^(%s)+',chars);
elseif how==2
expression = sprintf('(%s)+$',chars);
elseif how==3
expression = sprintf('^(%s)+|(%s)+$',chars,chars);
elseif how==4
expression = sprintf('(?<=[(%s)])(%s)*|^(%s)+|(%s)+$',chars,chars,chars,chars);
end % end if how
result = regexprep(s, expression, '');
end