我正在编写一个脚本,它将两个格式为“HH:MM”的字符串作为输入。这些字符串是以小时 (HH) 和分钟 (MM) 为单位的时间。如果用户输入错误的格式一段时间,我想显示一条错误消息,例如“HH:MM:SS”,如果他们认为脚本也可以解释秒。我将其设置为接受负数,因此将正确解释像“-HH:MM”这样的输入。像“HHH:MMM”这样具有可变小时和分钟大小的输入也可以,实际上应该接受任何形式为 %s:%s 的输入,因为稍后会处理像“5:30 AM”这样的错误。
我需要在阅读之前测试输入的格式是否为“字符串冒号字符串”,这可能吗?为了使问题更清楚,这里是解释我如何读取输入 time1 和 time2 的代码:
[hour1, min1] = strread(time1, '%s%s', 'delimiter', ':');
[hour2, min2] = strread(time2, '%s%s', 'delimiter', ':');
如果 time1 和 time2 的格式错误,strread 会抛出一个无用的错误。我想先显示我自己的错误来解释问题所在。在实际阅读之前如何检查 time1 和 time2 的格式?
想法:
formatSpec = '%s : %s';
input = textscan(time1,formatSpec);
%Compare input to formatSpec somehow to see if they match?
if (no_match)
error('time1 must be formatted as HH:MM');
end