本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

string

字符串数组

说明

从 R2016b 开始,您可以使用字符串数组而不是字符数组来表示文本。字符串数组的每个元素存储一个字符序列。序列可以具有不同长度,无需填充,例如 "yes""no"。只有一个元素的字符串数组也称为字符串标量

您可以按照标准数组运算对字符串数组进行索引、重构和串联,还可以使用 + 运算符向字符串追加文本。如果字符串数组表示数字,则可以使用 double 函数将其转换为数值数组。

创建对象

您可以通过用双引号括起一段文本来创建字符串。从 R2017a 开始引入双引号。

str = "Hello, world"
str = 
"Hello, world"

创建字符串数组的一种方法是使用方括号将字符串串联成数组,就像将数字串联成数值数组一样。

str = ["Mercury","Gemini","Apollo";
       "Skylab","Skylab B","ISS"]
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

也可以按如下所述,使用 string 函数将不同数据类型的变量转换成字符串数组。

说明

示例

str = string(A) 将输入数组转换为字符串数组。

示例

str = string(D)DFormat 属性指定的格式将日期时间、持续时间或日历持续时间数组转换为字符串数组。输出在每行中包含一个日期或持续时间。

示例

str = string(D,fmt) 以指定的格式(例如 'HH:mm:ss')表示日期或持续时间。

str = string(D,fmt,locale) 以指定的区域设置(例如 'en_US')表示日期或持续时间。区域设置会影响用于表示字符串(例如月份和日期名称)的语言。

输入参数

全部展开

输入数组。A 的数据类型决定 string 如何将 A 转换为字符串数组。

  • 如果 A 是字符向量,则 stringA 转换为字符串标量。输出 str 和输入 A 具有相同顺序的相同字符。

  • 如果 A 是元胞数组或分类数组,则 stringA 中的每个元素转换为 str 中的字符串元素。

  • 如果 A 是数值数组,则 string 将每个数值转换为 str 中的字符串元素。

    char 函数不同,string 不会将数值视为 ASCII 或 Unicode® 代码点。

  • 如果 A 是逻辑数组,则 string 将每个值转换为 "false""true"

  • 如果 A[],则 string 返回一个 0×0 字符串数组。

输入日期和时间,指定为日期时间或持续时间数组。

数据类型: datetime | duration | calendarDuration

日期和时间格式,指定为 []、字符向量或字符串标量。如果指定 [],则 string 以输入 DFormat 属性指定的格式表示 D

支持的格式取决于 D 的数据类型。

  • datetime 格式可以包括单位和分隔符的组合,例如 'yyyy-MMM-dd HH:mm:ss.SSS'。有关详细信息,请参阅日期时间数组的 Format 属性。

  • duration 格式为单个字符('y''d''h''m''s')或者以下组合之一:

    • 'dd:hh:mm:ss'

    • 'hh:mm:ss'

    • 'mm:ss'

    • 'hh:mm'

    • 以上任意项,用最多九个 S 字符指示秒小数位,例如 'hh:mm:ss.SSSS'

  • calendarDuration 格式可以按从最大到最小时间单位的顺序包括字符 'y''q''m''w''d''t' 的组合,例如 'ym'

有关 durationcalendarDuration 格式的详细信息,请参阅设置日期和时间显示格式

输出中表示的区域设置,指定为字符向量或字符串标量。区域设置影响用于表示日期和时间的某些分量(例如月份名称)的语言。

locale 可以是:

  • 'system',用于指定您的系统区域设置。

  • xx_YY 形式的字符向量,其中 xx 是用于指定语言的小写 ISO 639-1 双字母代码,YY 是用于指定国家/地区的大写 ISO 3166-1 alpha-2 代码。

locale 输入参数可以是 datetime 函数的 'Locale' 名称-值对组参数接受的任何值。

示例: 'en_US'

示例: 'ja_JP'

输出参数

全部展开

输出数组,以字符串数组形式返回。

MATLAB® 采用 UTF-16 编码方式将所有字符存储为 Unicode 字符。有关 Unicode 的详细信息,请参阅 Unicode

示例

全部折叠

要查找字符串中的唯一单词,请在空格字符处拆分字符串,然后调用 unique 函数。

首先创建一个字符串标量。

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

删除感叹号。

str = erase(str,"!")
str = 
"A horse A horse My kingdom for a horse"

str 中的所有字母转换为小写字符。

str = lower(str)
str = 
"a horse a horse my kingdom for a horse"

使用 split 函数在空格字符处拆分 strsplit 将丢弃空格字符,并以字符串数组形式返回结果。

str = split(str)
str = 9x1 string
    "a"
    "horse"
    "a"
    "horse"
    "my"
    "kingdom"
    "for"
    "a"
    "horse"

使用 unique 函数查找 str 中的唯一单词。

str = unique(str)
str = 5x1 string
    "a"
    "for"
    "horse"
    "kingdom"
    "my"

A = 'Four score and seven years ago'
A = 
'Four score and seven years ago'
str = string(A)
str = 
"Four score and seven years ago"

str 包含与 A 相同的字符。但是,A 是字符向量,而 str 是字符串标量。

c = size(A)
c = 1×2

     1    30

s = size(str)
s = 1×2

     1     1

要返回 str 中的字符数,请使用 strlength 函数。

n = strlength(str)
n = 30

将字符向量元胞数组转换为字符串数组。

A = {'Mercury','Gemini','Apollo';...
     'Skylab','Skylab B','ISS'}
A = 2x3 cell
    {'Mercury'}    {'Gemini'  }    {'Apollo'}
    {'Skylab' }    {'Skylab B'}    {'ISS'   }

str = string(A)
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

要访问 str 的第一行中的第二个元素,请使用圆括号进行索引。您可以通过矩阵索引访问字符串数组中的字符串,就像访问数值数组的元素一样。

str(1,2)
ans = 
"Gemini"

访问第三列。

str(:,3)
ans = 2x1 string
    "Apollo"
    "ISS"

A = [77 65 84 76 65 66]
A = 1×6

    77    65    84    76    65    66

str = string(A)
str = 1x6 string
    "77"    "65"    "84"    "76"    "65"    "66"

str 是字符串数组,其中每个元素表示 A 中的一个数值。请注意,string 不会像 char 函数那样将数字视为 ASCII 或 Unicode® 值。

创建一个字符串数组,其中每个元素代表一个数字。要将字符串数组转换为数值数组,请使用 double 函数。

str = ["256","3.1416","8.9e-3"]
str = 1x3 string
    "256"    "3.1416"    "8.9e-3"

X = double(str)
X = 1×3

  256.0000    3.1416    0.0089

当输入参数为字符串数组时,double 函数会将每个元素视为一个浮点值的表示形式。但是,当输入是字符数组时,double 会将每个字符转换为表示其 Unicode® 值的数字。

也可以使用 str2double 函数。当输入参数可能是字符串数组、字符向量或字符向量元胞数组时,适合使用 str2double

Y = str2double(str)
Y = 1×3

  256.0000    3.1416    0.0089

C = '2.7183';
Z = str2double(C)
Z = 2.7183

创建一个 duration 数组。

D = hours(23:25) + minutes(8) + seconds(1.2345)
D = 1x3 duration
   23.134 hr   24.134 hr   25.134 hr

D 转换为字符串数组。

str = string(D)
str = 1x3 string
    "23.134 hr"    "24.134 hr"    "25.134 hr"

str 是每个元素对应一个持续时间值的字符串数组。str 的大小与 D 相同。

指定 str 中的持续时间值的格式。

str = string(D,'hh:mm')
str = 1x3 string
    "23:08"    "24:08"    "25:08"

提示

  • 有关在字符串数组中创建和处理文本的函数列表,请参阅字符和字符串

  • 如果输入参数是对象,则它必须属于实现 string 方法来将对象表示为字符串的类。

扩展功能

在 R2016b 中推出