Swap first and last word in a string

13 visualizaciones (últimos 30 días)
Nobita Nobi
Nobita Nobi el 18 de Mayo de 2019
Editada: madhan ravi el 18 de Mayo de 2019
Hi there,
Can anyone please tell me how to continue this task? I am able to find the first and last word but could not figure out the way to swap them.
Many thanks!
function f = swap(str)
s=' ';
sp=strfind(str,s);
for i=1:sp(1)-1
firstword(i)=str(i);
end
lastword = str(sp(end)+1:end);

Respuesta aceptada

madhan ravi
madhan ravi el 18 de Mayo de 2019
Editada: madhan ravi el 18 de Mayo de 2019
Simpler:
s = 'hello world';
Wanted = swap(s) % function call
% function
function Wanted = swap(str)
S = regexp(str,'\S*','match');
S([1,end]) = S([end,1]);
Wanted = strjoin(S);
end

Más respuestas (1)

Image Analyst
Image Analyst el 18 de Mayo de 2019
Here's one way:
% Create sample string.
str = 'one two three four five';
% Split apart into individual words without spaces.
words = strsplit(str)
% Swap the first and last words.
[words(end), words(1)] = deal(words(1), words(end))
% String the words together with spaces between them.
outputString = ''; % Initialize output
for k = 1 : length(words)
outputString = sprintf('%s ', outputString, words{k});
end
% Trim off the leading and trailing spaces.
outputString = strtrim(outputString)
  1 comentario
madhan ravi
madhan ravi el 18 de Mayo de 2019
Editada: madhan ravi el 18 de Mayo de 2019
This adds an extra space inbetween words.
>> strlength(str)
ans =
23
>> strlength(outputString)
ans =
27
>>

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by