How can I replicate the strtrim function?
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (2)
Star Strider
il 3 Mar 2016
Modificato: Star Strider
il 3 Mar 2016
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 Commenti
Star Strider
il 4 Mar 2016
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
il 4 Mar 2016
Result = regexprep(a, {'^ +', '\s+$'}, {'', ''})
Walter Roberson
il 3 Mar 2016
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 Commenti
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!