6.3.4单元字符串数组

元胞数组的一个常见用途是将多个字符串存储在同一个变量中。通过让每一行都是一个字符串,也可以将多个字符串存储在一个racter矩阵中。然而,这引入了所有字符串必须具有相等长度的问题。因此,建议使用元胞数组来存储多个字符串。对于操作需要字符矩阵表示的情况,有几个函数可以将字符串的元胞数组转换为字符数组并返回。charstrvcat将元胞数组转换为字符数组(详见连接字符串),而函数cellstr将字符数组转换为字符串的元胞数组:

a=[“你好”;“世界”];c=数组str(a)⇒ c={[1,1]=你好[2,1]=世界}
 
: cstr = cellstr (strmat)

从字符串数组的元素创建新的元胞数组对象strmat.

每行strmat成为的元素cstr。在转换之前,将删除一行中的任何尾部空格。

要从cellstr转换回字符数组,请使用char.

详见: 单间牢房, char.

使用元胞数组存储多个字符串的另一个优点是Octaves中包含的大多数字符串操作函数都支持这种表示。例如,可以使用字符串比较函数作用如果此函数的一个参数是字符串,而另一个是字符串的元胞数组,则会将元胞数组的每个元素与字符串参数进行比较:

c={“你好”,“世界”};strcmp(“你好”,c)⇒ ans=1 0

以下字符串函数支持字符串的元胞数组:char, strvcat, 字符串连接函数详见连接字符串), 字符串比较函数, strncmp, strcmpi,strncmpi详见在字符串中搜索), str2双,deblank, strtrim, strtrunc, strfind,strmatch, 正则表达式, regexpi详见字符串操作str2双详见转换字符串).

函数iscellstr可用于测试对象是否为字符串数组。

 
: tf = iscellstr (cell)

如果元胞数组的每个元素都返回true单间牢房是一个字符串。

详见: ischar, isstring.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号