Removing multiple blanks for a string
30 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
suppose I have a string mystr='Tom and Jerry' I want to write a function that removes all the spaces and leaves just one space in between each word. So I would want the outcome to be 'Tom and Jerry' I used mystr=mystr(~isspace(mystr)) and got TomandJerry but how would I include one space in bettween each word? Thank you
0 Commenti
Risposta accettata
the cyclist
il 30 Ott 2013
txt_old = 'Tom and Jerry';
txt_new = regexprep(txt_old,' +',' ')
See
doc regexprep
for details.
0 Commenti
Più risposte (2)
Craig Szymanski
il 22 Mag 2015
A more direct andswer for anyone looking is:
function [strOut]=removeExtraSpaces(strIn);
temp2=strIn;
temp1='';
%Replaces double spaces with single spaces until the string doesn't change for an iteration.
while ~strcmp(temp1,temp2)
temp1=temp2;
temp2=regexprep(temp1,' ',' ');
end
strOut=temp2;
4 Commenti
Stephen23
il 28 Ago 2019
Modificato: Stephen23
il 28 Ago 2019
"Actually ...isn't working for some combination of strings. May be its a bug..."
If you upload some example strings that show this behavior then we can check this, and most likely also suggest how to deal with it efficiently (i.e. without a while loop).
"regexprep... in a loop is good workaround"
Identifying and fixing the root cause is even better.
Tushar Walse
il 28 Ago 2019
Sorry my mistake. I realized the problem was when displaying strings in multiline edit box ghost spaces get displayed which I thought are coming from the output of regexprep. I may sound completely stupid sorry again. Also I deleted the comment (seems I committed another stupid mistake).
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!