Swap first and last word in a string

5 ビュー (過去 30 日間)
Nobita Nobi
Nobita Nobi 2019 年 5 月 18 日
編集済み: madhan ravi 2019 年 5 月 18 日
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);

採用された回答

madhan ravi
madhan ravi 2019 年 5 月 18 日
編集済み: madhan ravi 2019 年 5 月 18 日
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

その他の回答 (1 件)

Image Analyst
Image Analyst 2019 年 5 月 18 日
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 件のコメント
madhan ravi
madhan ravi 2019 年 5 月 18 日
編集済み: madhan ravi 2019 年 5 月 18 日
This adds an extra space inbetween words.
>> strlength(str)
ans =
23
>> strlength(outputString)
ans =
27
>>

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by