Matlab中类型判别函数isstrprop

Matlab函数之isstrprop


isstrprop:确定字符串是否为制定类别

 

语法

TF = isstrprop(str,category)
TF = isstrprop(str,category,‘ForceCellOutput’,tf)

说明

TF = isstrprop(str,category)确定输入文本的元素是否是指定的类别,如字母、数字或空白。例如,isstrprop(‘ABC123’,‘alpha’) 返回一个 1×6 逻辑数组 [1 1 1 0 0 0],指示前三个字符为字母。
如果 str 是字符数组、字符串标量或数值数组,则 isstrprop 返回一个逻辑数组。
如果 str 是字符向量元胞数组或字符串数组,则 isstrprop 返回一个逻辑向量元胞数组。
TF = isstrprop(str,category,‘ForceCellOutput’,tf) 在 tf 为 1 (true) 时会将 TF 返回为一个元胞数组,即使 str 是一个字符数组、字符串标量或数值数组也是如此。tf 的默认值为 0 (false)。

示例

①确定哪些字符为字母

创建字符向量,并确定哪些字符为字母。

chr = ‘123 Maple Street’

chr =
‘123 Maple Street’

TF = isstrprop(chr,‘alpha’)

TF = 1x16 logical array

0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1

使用 TF 查找 chr 中字母的索引。

idx = find(TF)

idx = 1×11

 5     6     7     8     9    11    12    13    14    15    16
  • 1

chr(idx)
ans =
‘MapleStreet’

②确定字符串数组中的字符类型

创建字符串数组。然后,使用 isstrprop 函数确定各个字符的所属类别。
创建字符串标量,并确定哪些字符是数字。从 R2017a 开始,可以使用双引号创建字符串。

str = “123 Maple Street”

str =
“123 Maple Street”

TF = isstrprop(str,‘digit’)

TF = 1x16 logical array

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
创建非标量字符串数组。确定每个字符串中的哪些字符是空白字符。isstrprop 返回一个元胞数组,其中的每个元胞都包含 str 中一个字符串的结果。

str = [“123 Maple St.”;“456 Oak St.”]

str = 2x1 string array
“123 Maple St.”
“456 Oak St.”

TF = isstrprop(str,‘wspace’)

TF = 2x1 cell array
{1x13 logical}
{1x11 logical}
要显示第二个字符串 str(2) 的结果,请对 TF{2} 进行索引。

TF{2}

ans = 1x11 logical array

0 0 0 1 0 0 0 1 0 0 0

③确定元胞数组中的字符类型

创建字符向量元胞数组。确定哪些字符为空白字符。

C = {‘123 Maple St.’;‘456 Oak St.’}

C = 2x1 cell array
{‘123 Maple St.’}
{‘456 Oak St.’ }

TF = isstrprop(C,‘wspace’)

TF = 2x1 cell array
{1x13 logical}
{1x11 logical}

④在元胞数组中返回逻辑向量

在字符向量中查找标点字符。isstrprop 返回一个逻辑向量,指示哪些字符属于该类别。强制 isstrprop 在一个元胞数组中返回逻辑向量。

chr = ‘A horse! A horse! My kingdom for a horse!’

chr =
‘A horse! A horse! My kingdom for a horse!’

TF = isstrprop(chr,‘punct’,‘ForceCellOutput’,true)

TF = 1x1 cell array
{1x41 logical}
使用 TF{1} 查找 chr 中的标点符号的索引。

find(TF{1})

ans = 1×3

 8    17    41
  • 1

⑤确定数值数组中的字符类型

创建一个数值数组。确定哪些数字对应于字母的字符代码。

X = [77 65 84 76 65 66]

X = 1×6

77    65    84    76    65    66
  • 1

TF = isstrprop(X,‘alpha’)

TF = 1x6 logical array

1   1   1   1   1   1
  • 1

isstrprop 将所有数字均识别为字母的字符代码。使用 char 函数将数字转换为其对应的字符。

c = char(X)

c =
‘MATLAB’

⑥输入参数

str - 输入数组
字符串数组 | 字符数组 | 字符向量元胞数组 | 数值数组
输入数组,指定为字符串数组、字符数组、字符向量元胞数组或数值数组。

如果 str 是数值数组,则 isstrprop 会将数字作为 Unicode® 字符代码处理。如果数字是双精度或单精度浮点数,则 isstrprop 在将它们解释为字符代码之前,会先将它们舍入到最接近的整数值。

数据类型: string | char | cell | double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
category-字符类型
字符类别,指定为字符向量或字符串标量。isstrprop 根据 Unicode 标准定义的类别对 str 中的字符进行分类。
alpha: 字母;
alphanum: 字母或数字;
cntrl: 控制字符(例如 char(0:20));
digit: 数字;
graphic: 图形字符,isstrprop 将除以下字符外的所有 Unicode 字符视为图形字符:未赋值字符、空白字符、行分隔符、段落分隔符、控制字符、用户定义的专用字符、代理字符;
lower: 小写字母;
print: 图形字符,加上 char(32);
punct: 标点字符;
wspace: 空白字符。此范围除了包括 ANSI® C 定义的空白 {’ ,’\t’,’\n’,’\r’,’\v’,’\f’} 以外,还包括一些其他的 Unicode 字符;
upper: 大写字母;
xdigit: 有效的十六进制数字。
tf-True或False
指定1或0。

⑦输出参数

TF - True 或 false
逻辑数组 | 逻辑向量元胞数组
True 或 false,以逻辑数组或逻辑向量元胞数组形式返回。
如果 str 是字符向量、字符串标量或数值数组,则 TF 是一个逻辑数组,指示有哪些字符属于指定的类别。
如果 str 是字符向量元胞数组或字符串数组,则 TF 是一个元胞数组。对于 str 中的每个元素,TF 中与之对应的元胞都会包含一个逻辑向量,指示此元素中的哪些字符属于指定的类别。
提示
除了一些其他的 Unicode 字符外,wspace 选项为其返回 true 的空白字符还包含制表符、换行符、垂直制表符、换页符、回车符和空格。要查看 wspace 选项为其返回 true 的所有字符,请输入以下命令,然后在 Unicode 参考中查找返回的十进制码:

find(isstrprop(char(1):char(intmax(‘uint16’)),‘wspace’))

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值