Обозначение фигурных скобок
В некоторых языках программирования , таких как Perl , фигурные скобки — это более быстрый способ извлечения байтов из строковой переменной.
В псевдокоде
[ редактировать ]Пример обозначения фигурных скобок с использованием псевдокода, который извлекает 82-й символ из строки:
a_byte = a_string{82}
Эквивалент этого использования гипотетической функции «MID»:
a_byte = MID(a_string, 82, 1)
В С
[ редактировать ]В C строки обычно представляются как массив символов, а не как фактический строковый тип данных. Тот факт, что строка на самом деле представляет собой массив символов, означает, что обращение к строке будет означать обращение к первому элементу массива. Следовательно, в C следующим является законным примером обозначения фигурных скобок:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
char* a_string = "Test";
printf("%c", a_string[0]); // Would print "T"
printf("%c", a_string[1]); // Would print "e"
printf("%c", a_string[2]); // Would print "s"
printf("%c", a_string[3]); // Would print "t"
printf("%c", a_string[4]); // Would print the 'null' character (ASCII 0) for end of string
return(0);
}
Обратите внимание, что каждый из a_string[n] будет иметь тип данных «char», тогда как сам a_string будет возвращать указатель на первый элемент в массиве символов a_string.
В С#
[ редактировать ]В C# фигурные скобки обрабатываются по-другому. Строка — это примитивный тип , который возвращает символ при встрече с фигурными скобками:
String var = "Hello World";
char h = var[0];
char e = var[1];
String hehe = h.ToString() + e.ToString(); // string "he"
hehe += hehe; // string "hehe"
Чтобы изменить тип char на строку в C#, используйте метод ToString() . Это позволяет объединять отдельные символы с помощью символа сложения + , который действует как символ конкатенации при работе со строками.
На Python
[ редактировать ]В Python строки неизменяемы , поэтому изменить существующую строку сложно, но можно легко извлечь и объединить строки друг с другом: Извлекать символы еще проще:
>>> var = 'hello world'
>>> var[0] # Return the first character as a single-letter string
'h'
>>> var[-1]
'd'
>>> var[len(var)-1] # len(var) is the length of the string in var; len(var)-1 is the index of the last character of the string.
'd'
>>> var = var + ' ' + var[8] + var[7] + var[2] + var[1]
>>> var
'hello world role'
Python гибок в деталях, обратите внимание, что var[-1] принимает -1 в качестве индексного номера. Этот индекс интерпретируется как первый символ, начиная с конца строки. Считайте 0 границей индекса строки; ноль является инклюзивным, поэтому он вернет первый символ. При индексе 1 и выше все символы, принадлежащие каждому индексу, «извлекаются» слева направо. С индексом -1 и ниже все символы «извлекаются» справа налево. Поскольку до индекса 0 символов больше нет, Python «перенаправляет» курсор в конец строки, где символы читаются справа налево. Если строка имеет длину n , то максимальная граница индекса равна n-1 , а минимальная граница индекса равна -n , что возвращает тот же символ, что и индекс 0, а именно первый символ.
Также возможно извлечь последовательность символов:
>>> var[0:5]
'hello'
Обратите внимание, что последнее число в последовательности является исключительным. Python извлекает символы, начиная с индекса 0 и до 5, исключая его.
Также можно извлечь каждый символ x в последовательности, в данном случае x=2:
>>> var = 'abcdefghijklmn'
>>> var[0:len(var):2]
'acegikm'
В PHP
[ редактировать ]Строки PHP могут стать очень большими и могут использовать всю доступную память, если встречается достаточно большая строка. Обычно в этом случае лучше разделить() строку на массив для более точного управления. Обозначение скобок в PHP выглядит так:
$a = "Hello" . 'World';
$c = $a[0] . $a[1] . $a[8] . $a[3] . $a[6];
echo $c . " " . strlen($c); // Hello 5
Обратите внимание, что переменная $a принимает символы внутри двойной или одинарной кавычки как одну и ту же строку. PHP ожидает, что строка закончится той же кавычкой, что и открывающая кавычка(и). Обозначение скобок для строки всегда возвращает тип строки.
В JavaScript
[ редактировать ]Обозначение фигурных скобок в JavaScript работает так же, как в C# и PHP.
var myString = "Hello" + "World";
alert(myString[0] + " " + myString[5]); // alerts the message: H W
В МАТЛАБ
[ редактировать ]MATLAB обрабатывает фигурные скобки немного иначе, чем большинство распространенных языков программирования.
>> var = 'Hello World'
var =
Hello World
>> var(1)
ans =
H
Строки начинаются с индекса 1, заключенного в круглые скобки , поскольку они рассматриваются как матрицы. Полезной особенностью фигурных скобок в MATLAB является то, что они поддерживают диапазон индексов, как и Python:
>> var(1:8)
ans =
Hello Wo
>> var(1:length(var))
ans =
Hello World
Использование квадратных скобок [] зарезервировано для создания матриц в MATLAB.