Документация Engee
Notebook

Сравнение текста

В данном примере разберем, как сравнивать фрагменты текста, представленные в виде строковых массивов.

Сравнение строк на предмет равенства

Вы можете сравнить массивы строк на предмет равенства с помощью реляционных операторов == и !=. Когда вы сравниваете массивы строк, на выходе получается логический массив, у которого 1 (true) - отношение истинно, а 0 (false) - оно неверно.

In [ ]:
str1 = "Hello";
str2 = "World";
str1,str2
Out[0]:
("Hello", "World")
In [ ]:
str1 != str2
Out[0]:
true
In [ ]:
str1 = ["Mercury" "Gemini" "Apollo";"Skylab" "Skylab B" "International Space Station"];
str2 = "Apollo";
str1 .== str2
Out[0]:
2×3 BitMatrix:
 0  0  1
 0  0  0
In [ ]:
str2 = ["Mercury" "Mars" "Apollo";"Jupiter" "Saturn" "Neptune"];
str1 .!= str2
Out[0]:
2×3 BitMatrix:
 0  1  0
 1  1  1

Сравнение строк с другими операторами отношения

Сравнивать строки также можно с помощью операторов отношения >, >=, < и <=. Строки, начинающиеся с прописных букв, предшествуют строкам, начинающимся со строчных букв. Например, строка "ABC" меньше "abc". Цифры и некоторые знаки препинания также стоят перед буквами.

In [ ]:
"ABC" < "abc"
Out[0]:
true

Сравните массив строк, содержащий имена, с другим именем с помощью оператора > . Имена Sanchez, de Ponte, и Nash идут после Matthews, потому что S, d, и N все больше, чем M.

In [ ]:
str = ["Sanchez","Jones","de Ponte","Crosby","Nash"]; 
TF = (str .> "Matthews")
Out[0]:
5-element BitVector:
 1
 0
 1
 0
 1

Также существует функция cmp(), которая сравнивает две строки. Возвращает 0, если они равны, 1 - когда первый аргумент в виде строки больше второго, и -1 - первый аргумент меньше второго, соответственно.

In [ ]:
cmp("ABC","abc")
Out[0]:
-1

В данном материале были рассмотрены функции для выполнения сравнения текста в строковых массивах. Подробнее о работе с текстом и строковыми массивами можно ознакомиться в разделах: Текстовые строки и Массивы