Finding a character in a string?
83 views (last 30 days)
Show older comments
so I have the following line of code:
hashtag=lower(input('Which hashtag would you like information on?','s'));
This prompts the user to input a hashtag, like say '#helloworld'. However, the program runs even without the user putting the hashtag. So it runs even if they only input "helloworld", which presents problems for me later on. How can I get the code to stop reading and present an error message if there is no hashtag symbol in the user's input? Apparently the # character means something in matlab as well which is causing me problems.
I have this so far but it seems not to work:
if k=(strfind(hashtag,'#')))
error('Please include the hashtag')
end
0 Comments
Accepted Answer
The Matlab Spot
on 3 Dec 2013
using start anchor with regexp will ensure that you '#' as the first character of you input string.
hashtag=lower(input('Which hashtag would you like information on?','s'));
if(isempty(regexp(hashtag,'^#','once')))
error('Please include the hashtag')
end
2 Comments
Jos (10584)
on 3 Dec 2013
using regexp for this problem is like killing a mosquito with a nuclear missile ...
More Answers (2)
sixwwwwww
on 3 Dec 2013
Dear Johny, try this:
hashtag=lower(input('Which hashtag would you like information on?','s'));
if isempty(strfind(hashtag, '#'))
error('Please include the hashtag')
end
0 Comments
Jos (10584)
on 3 Dec 2013
Per definition a hashtag starts with a # sign followed by one or more letters or numbers
So, quite simply, check all these three requirements:
str = lower(input('Which hashtag would you like information on?','s'));
if numel(str)<2 || str(1) ~= '#' || ~all(ismember(str(2:end),['a':z' '_' '0':'9']))
error('Input is not a valid hashtag') ;
end
0 Comments
See Also
Categories
Find more on String Parsing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!