Spec-Zone.ru › Octave 8

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–2023 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/v8.1.0/Concatenating-Strings.html

Spec-Zone.ru

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