필터 지우기
필터 지우기

finding big letters and skip a line

조회 수: 4 (최근 30일)
Noa Prasquier
Noa Prasquier 2021년 4월 21일
편집: Scott MacKenzie 2021년 4월 21일
Hi,
I need to write a code that will help me find big letters in a string, and skip a line before the big letter(my string has to look like a poem with 5 lines)
Here the code I tried, I can't figure out what I need to write instead of ????
s="In the golden lightning Of the sunken sun,Oer which clouds are bright'ning, Thou dost float and run, Like an unbodied joy whose race is just begun";
for i=1:length(s)
if s(i)~=lower(s(i))
???
end
end

채택된 답변

DGM
DGM 2021년 4월 21일
Something like this:
s='In the golden lightning Of the sunken sun,Oer which clouds are bright''ning, Thou dost float and run, Like an unbodied joy whose race is just begun';
out=regexprep(s,'[A-Z]','\n$0')
  댓글 수: 1
Scott MacKenzie
Scott MacKenzie 2021년 4월 21일
편집: Scott MacKenzie 2021년 4월 21일
Yup, there it is. Concise, elegant. Nice.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Scott MacKenzie
Scott MacKenzie 2021년 4월 21일
편집: Scott MacKenzie 2021년 4월 21일
There's probably a more elegant solution, but here's a first quick shot at this:
s="In the golden lightning Of the sunken sun,Oer which clouds are bright'ning, Thou dost float and run, Like an unbodied joy whose race is just begun";
c = char(s);
upper = isstrprop(s, 'upper');
k = find(upper);
k = [k length(c)+1];
for i=2:length(k)
fprintf('%s\n', c(k(i-1):k(i)-1));
end
Output:
In the golden lightning
Of the sunken sun,
Oer which clouds are bright'ning,
Thou dost float and run,
Like an unbodied joy whose race is just begun

카테고리

Help CenterFile Exchange에서 String Parsing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by