How can I replicate the strtrim function?
조회 수: 8 (최근 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!