Swap first and last word in a string

13 Ansichten (letzte 30 Tage)
Nobita Nobi
Nobita Nobi am 18 Mai 2019
Bearbeitet: madhan ravi am 18 Mai 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);

Akzeptierte Antwort

madhan ravi
madhan ravi am 18 Mai 2019
Bearbeitet: madhan ravi am 18 Mai 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

Weitere Antworten (1)

Image Analyst
Image Analyst am 18 Mai 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 Kommentar
madhan ravi
madhan ravi am 18 Mai 2019
Bearbeitet: madhan ravi am 18 Mai 2019
This adds an extra space inbetween words.
>> strlength(str)
ans =
23
>> strlength(outputString)
ans =
27
>>

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by