5.3.2字符串连接

可以使用矩阵表示法连接字符串(详见, Character Arrays)这通常是最自然的方法。例如

fullname = [fname ".txt"];
email = ["<" user "@" domain ">"];

在每种情况下,都很容易看到最后的字符串会是什么样子。这种方法也是最有效的。当使用矩阵连接时,解析会立即开始连接字符串,而不必处理函数调用的开销和关联函数的输入验证。

这里的newline函数可用于连接字符串,使其在显示时显示为多行文本。

 
: c = newline

返回与换行符相对应的字符。

这相当于"\n".

示例代码

joined_string = [newline "line1" newline "line2"]
⇒
line1
line2

详见: strcat, strjoin, strsplit.

广告

此外,还有其他几个用于连接字符串对象的函数,这些函数在特定情况下可能很有用:char,strvcat, strcatcstrcat最后,可以使用通用连接函数:详见cat,horzcatvertcat.

 
: C = char (A)
: C = char (A, …)
: C = char (str1, str2, …)
: C = char (cell_array)

从一个或多个数字矩阵、字符矩阵或元胞数组创建字符串数组。

参数是垂直连接的。返回的值根据需要用空格填充,以使字符串数组的每一行具有相同的长度。空的输入字符串意义重大,将在输出中连接。

对于数字输入,每个元素都转换为相应的ASCII字符。如果输入超出ASCII范围(0-255),则会返回范围错误。

对于元胞数组,每个元素都是单独连接的。元胞数组转换通过char大部分可以用转换returncellstr例如

char ([97, 98, 99], "", {"98", "99", 100}, "str1", ["ha", "lf"])
   ⇒ ["abc "
       "    "
       "98  "
       "99  "
       "d   "
       "str1"
       "half"]

详见: strvcat, cellstr.

广告
 
: C = strvcat (A)
: C = strvcat (A, …)
: C = strvcat (str1, str2, …)
: C = strvcat (cell_array)

从一个或多个数字矩阵、字符矩阵或元胞数组创建字符数组。

参数是垂直连接的。返回的值根据需要用空格填充,以使字符串数组的每一行具有相同的长度。不像char,空字符串将被删除,并且不会出现在输出中。

对于数字输入,每个元素都转换为相应的ASCII字符。如果输入超出ASCII范围(0-255),则会返回范围错误。

对于元胞数组,每个元素都是单独连接的。元胞数组转换通过strvcat大部分可以用转换returncellstr例如

strvcat ([97, 98, 99], "", {"98", "99", 100}, "str1", ["ha", "lf"])
      ⇒ ["abc "
          "98  "
          "99  "
          "d   "
          "str1"
          "half"]

详见: char, strcat, cstrcat.

广告
 
: str = strcat (s1, s2, …)

返回一个字符串,其中包含水平连接的所有参数。

如果自变量是单元字符串,strcat返回连接了各个数组的元胞字符串。对于数字输入,每个元素都转换为相应的ASCII字符。在连接字符串之前,将消除任何字符串输入的尾随空白。请注意,元胞字符串值会修剪空白。

例如

strcat ("|", " leading space is preserved", "|")
    ⇒ | leading space is preserved|
strcat ("|", "trailing space is eliminated ", "|")
    ⇒ |trailing space is eliminated|
strcat ("homogeneous space |", "  ", "| is also eliminated")
    ⇒ homogeneous space || is also eliminated
s = [ "ab"; "cde" ];
strcat (s, s, s)
    ⇒
        "ababab   "
        "cdecdecde"
s = { "ab"; "cd " };
strcat (s, s, s)
    ⇒
        {
          [1,1] = ababab
          [2,1] = cd cd cd
        }

详见: cstrcat, char, strvcat.

广告
 
: str = cstrcat (s1, s2, …)

返回一个字符串,其中包含所有水平连接的参数,并保留尾部空白。

例如

cstrcat ("ab   ", "cd")
      ⇒ "ab   cd"
s = [ "ab"; "cde" ];
cstrcat (s, s, s)
      ⇒ "ab ab ab "
         "cdecdecde"

详见: strcat, char, strvcat.

广告

版权所有 © 2024-2025 Octave中文网

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