首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查字符串是否包含MATLAB中的任何数字

检查字符串是否包含MATLAB中的任何数字
EN

Stack Overflow用户
提问于 2019-11-21 16:01:55
回答 2查看 3.3K关注 0票数 1

如何检查字符串是否包含任何数字?

检查字符串是否包含所有字母的最佳方法是使用isletter命令,但是如何进一步检查字符串中的任何字符是否是数字?

一种方法是将字符串转换为一个字符数组,并交叉检查ascii值是否属于数字。在MATLAB中有更简单的方法来做到这一点吗?

示例字符串:67 Cliston St

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-21 16:10:49

代码语言:javascript
复制
>> exampleString = "67 Cliston St";
>> any(regexp(exampleString ,'[0-9]'))

如果字符串中至少有一个数字,则返回true。

票数 3
EN

Stack Overflow用户

发布于 2019-11-21 16:17:54

这绝不是最好的方法(我相信其他人会有一个更优雅的解决方案)。但这似乎奏效了。

方法:

使用split.

代码语言:javascript
复制
str = '67 Cliston St'
newStr = strtrim(split(str))

idxNum = false(length(newStr),1);
for k =1:length(newStr)
    if ~isempty(str2num(newStr{k}))
        idxNum(k) = isnumeric(str2num(newStr{k}))
    end
end
NumPresent = any(idxNum,true);    % returns true if any numerics in the str

就像我说的,它不漂亮。其他的答案是优越的。对于'67Cliston St',这将失败,除非您将字符串分解为以下每个字符

代码语言:javascript
复制
newStr = strtrim(split(str,""))

这对'67Cliston St'来说是很好的。

计算性能:

将这一答案与其他答案进行比较:

  • isstrprop(str,'digit') (source)
  • any(regexp(exampleString ,'[0-9]')) (source)

显示了随着字符串长度的增加,isstrprop(str,'digit')要快得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58979040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档