Spec-Zone.ru › Octave 9

5.3.2 Объединение строк

Строки можно объединять с помощью матричной записи (см. Строки, Символьные массивы), которая зачастую является наиболее естественным способом. Например:

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

В каждом случае легко понять, как будет выглядеть итоговая строка. Этот способ также является наиболее эффективным. При объединении с помощью матричной записи парсер сразу начинает объединять строки, не обрабатывая накладные расходы на вызов функции и проверку входных данных, выполняемую соответствующей функцией.

Функцию newline можно использовать для объединения строк так, чтобы при отображении они выглядели как несколько строк текста.

: c = newline

Возвращает символ, соответствующий символу новой строки.

Это эквивалентно "\n".

Пример кода

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

См. также: strcat, strjoin, strsplit.

Кроме того, есть несколько других функций для объединения строковых объектов, которые могут быть полезны в определённых ситуациях: char, strvcat, strcat и cstrcat. Наконец, можно использовать функции объединения общего назначения: см. cat, horzcat и vertcat.

  • Все функции объединения строк, кроме cstrcat, преобразуют числовые входные данные в символьные, подставляя соответствующий символ UTF-8 для каждого элемента (или многобайтовой последовательности), как показано в следующем примере:
    char ([98, 97, 110, 97, 110, 97])
       ⇒ banana

    Сведения о преобразовании между локальными кодировками и UTF-8 см. в разделах unicode2native и native2unicode.

  • char и strvcat выполняют вертикальное объединение, а strcat и cstrcat — горизонтальное. Например:
    char ("an apple", "two pears")
        ⇒ an apple
           two pears
    
    
    strcat ("oc", "tave", " is", " good", " for you")
         ⇒ octave is good for you
  • char создаёт в выходных данных пустую строку для каждой пустой строки во входных данных. strvcat, напротив, удаляет пустые строки.
    char ("orange", "green", "", "red")
        ⇒ orange
           green
    
           red
    
    
    strvcat ("orange", "green", "", "red")
        ⇒ orange
           green
           red
  • Все функции объединения строк, кроме cstrcat, также принимают данные в виде массивов ячеек (см. Массивы ячеек). char и strvcat преобразуют массивы ячеек в символьные массивы, а strcat выполняет объединение внутри ячеек массивов ячеек:
    char ({"red", "green", "", "blue"})
         ⇒ red
            green
    
            blue
    
    
    strcat ({"abc"; "ghi"}, {"def"; "jkl"})
         ⇒
            {
              [1,1] = abcdef
              [2,1] = ghijkl
            }
  • strcat удаляет завершающие пробелы в аргументах (за исключением массивов ячеек), а cstrcat оставляет пробелы без изменений. Оба варианта поведения могут быть полезны, что видно из примеров:
    strcat (["dir1";"directory2"], ["/";"/"], ["file1";"file2"])
         ⇒ dir1/file1
            directory2/file2
    
    
    cstrcat (["thirteen apples"; "a banana"], [" 5$";" 1$"])
          ⇒ thirteen apples 5$
             a banana        1$

    Обратите внимание, что в приведённом выше примере для cstrcat пробелы возникают из-за внутреннего представления строк в массиве строк (см. Символьные массивы).

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

Создаёт массив строк из одной или нескольких числовых матриц, символьных матриц или массивов ячеек.

Аргументы объединяются вертикально. Возвращаемые значения при необходимости дополняются пробелами, чтобы все строки массива строк имели одинаковую длину. Пустые входные строки учитываются и будут включены в выходные данные.

Для числовых входных данных каждый элемент преобразуется в соответствующий символ ASCII. Если входное значение находится вне диапазона ASCII (0–255), возникает ошибка диапазона.

Для массивов ячеек каждый элемент объединяется отдельно. Массивы ячеек, преобразованные с помощью char, в большинстве случаев можно преобразовать обратно с помощью cellstr. Например:

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, в большинстве случаев можно преобразовать обратно с помощью cellstr. Например:

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.

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Concatenating-Strings.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API