How can I replicate the strtrim function?
10 ビュー (過去 30 日間)
古いコメントを表示
I am trying to replicate the strtrim function, but I cannot seem the figure out how to get it to work properly. When I run my code, it takes every single space (or tab) out of the string. I cannot figure out how to make it take only the leading and trailing spaces out. I know the strtrim function can do that, but I am trying to replicate that function. A detailed explanation of the solution would be much appreciated. Thank you all.
a = ' some words with spaces ';
k=1;
while k <= length(a)
if a(k) == char(32)
a(k) = '';
k = k+1;
elseif a(k) == char(9)
a(k) = '';
else
k = k+1;
end
end
0 件のコメント
回答 (2 件)
Star Strider
2016 年 3 月 3 日
編集済み: Star Strider
2016 年 3 月 3 日
You can do it with a relatively simple regexp call:
a = ' some words with spaces ';
[s, e] = regexp(a, '\S*');
Result = a(s(1):e(end))
Result =
some words with spaces
3 件のコメント
Star Strider
2016 年 3 月 4 日
It’s probably possible to do that with regexp, but it’s eluding me. I can get regexp to do some of it but not all of it at once.
Walter Roberson
2016 年 3 月 3 日
Hint: when you are removing something from a matrix in a loop, always start from the end and move to the beginning. Think of it like Tetris and "falling down" into vacated slots...
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!