测试5似乎是错误的:
我猜"a = sprintf('\ tab in front, space at end ');"应该是a = '\ tab in front, space at end '。
此外,tab是ASCII 9(不是32)。
@Franck . .使用isspace函数。空格和制表符空格是有区别的!顺便说一下,strtrim删除了白色和制表空间!
很简单的
这个问题可能还应该包含一个只有空格的测试。这就要求解决方案更加健壮。万博 尤文图斯
难道regexp或regexprep的使用不应该受到限制吗?并不是我不喜欢使用它,只是这些字符串问题似乎正在成为一种regexprep实践。
没有中间有多个空格的测试用例。我考虑过strjoin(strsplit),如果从strsplit操作中删除空单元格,它将通过这里的所有测试,但它将把中间的多个空格减少到一个。
我确信有一种更有效的方法来使用regexp执行此操作,但是这个奇妙函数的复杂性仍然让我困惑。
如果你有MATLAB >= 2016b
我不知道test 5的答案应该是什么,或者为什么我的答案是错误的
一行
测试5总是失败,因为几乎所有的Matlab函数都把t当作空间。try strtrim(a), isspace(a(i)) = 1, textscan(a,'%s')。
唯一能找到它的是= (a(1),' ') = 0。所以,只有蛮力循环才能通过测试5。
不值得这么做。
测试用例5对于strtrim(str)或isspace(str)函数失败-两者都认为\t是空格。
这个怎么能通过测试5?它应该删除前导选项卡并失败。
检查测试5????