replace spaces in a string
167 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mitul Dattani
el 8 de En. de 2018
Comentada: nagendra badiger
el 22 de Jul. de 2020
Im doing a practice question and I got the question:
Replace any occurrence of two or more consecutive blank spaces with one (single) blank space
I attempted it a bunch of ways but so far the code Ive got is:
str = input('Enter a string: ');
[m, n] = size(str);
C = 0;
for i=1:n
if str(i) == ' '
C = C+1;
blankpos(C) = i;
end
end
fprintf('Position of the blank spaces: \n');
blankpos
C1 = 0;
strm=str;
for i=1:n
if str == ' '
C1 = C1+1;
posreplace(C1)=i;
if str == ' '
C1 = C1+1;
posreplace(C1)=i;
end
end
end
strm(posreplace) = ' ';
fprintf('The modified string: ');
strm
0 comentarios
Respuesta aceptada
Más respuestas (2)
Image Analyst
el 8 de En. de 2018
One way is to use strrep():
s = 'a a a a' % Test string.
% Repeatedly loop replacing double spaces by single space
% until there are no double spaces left.
while contains(s, ' ')
s = strrep(s, ' ', ' ');
end
s % Display in command window.
2 comentarios
Image Analyst
el 8 de En. de 2018
Did you try it? It works with any number of spaces.
However, Walter's answer looks like the best answer to me.
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!