If I have a string consisting of words of different lengths separated by spaces, how can return a word in that string given only its starting index?
조회 수: 1 (최근 30일)
이전 댓글 표시
As an example:
str = 'bat catch convey can cart court CUT ct CAT-scan';
...and all I have is my starting index, which is 11; consequently I want to return the word "convey" from this string. How do I proceed?
I find that "extractBetween" forces you to choose either between a start string and an end string, i.e.
newStr = extractBetween(str,startStr,endStr)
or a start position and an end position, i.e.
newStr = extractBetween(str,startPos,endPos)
Many thanks for whatever illumination you can provide.
댓글 수: 0
채택된 답변
Image Analyst
2019년 1월 4일
Here's how I thought of to do it:
str = 'bat catch convey can cart court CUT ct CAT-scan';
remainingWords = strsplit(str(11:end)) % Get words starting with index 11.
theWord = remainingWords{1} % Take the first word it found.
추가 답변 (1개)
Walter Roberson
2019년 1월 4일
편집: Walter Roberson
2019년 1월 4일
starting_index = 11; %given
mask = str == ' ';
starts = strfind([1 mask], [1 0]);
stops = strfind([mask 1], [0 1]);
wordidx = find(starts == starting_index);
if isempty(wordidx)
error('That starting index is not the beginning of a word')
end
the_word = str(starting_index : stops(wordidx));
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!