Finding a character in a string?

52 次查看(过去 30 天)
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

采纳的回答

The Matlab Spot
The Matlab Spot 2013-12-3
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 个评论
Johny
Johny 2013-12-3
This answer is more robust than the one above, so best answer goes to you. I didn't know the ^ symbol did anything at all actually. I learned something!Thanks to both of you guys though.
Jos (10584)
Jos (10584) 2013-12-3
using regexp for this problem is like killing a mosquito with a nuclear missile ...

请先登录,再进行评论。

更多回答(2 个)

sixwwwwww
sixwwwwww 2013-12-3
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

Jos (10584)
Jos (10584) 2013-12-3
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

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by