20250930-1
This commit is contained in:
@@ -1,77 +1,27 @@
|
||||
# anb_python_components/extensions/string_extension.py
|
||||
|
||||
from string_extension_constant import StringExtensionConstant
|
||||
|
||||
|
||||
class StringExtension:
|
||||
"""
|
||||
Расширение строк.
|
||||
"""
|
||||
__RUSSIAN_LETTERS = set('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я')
|
||||
|
||||
/ **
|
||||
* @ var
|
||||
array | string[] $RussianLettersTransliteration
|
||||
Набор
|
||||
русских
|
||||
букв
|
||||
в
|
||||
транслитерации
|
||||
* /
|
||||
private
|
||||
static
|
||||
array $RussianLettersTransliteration =
|
||||
[
|
||||
"a", "b", "v", "g", "d", "e", "yo", "zh", "z", "i", "j",
|
||||
"k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f",
|
||||
"h", "c", "ch", "sh", "sch", "j", "i", "j", "e", "yu", "ya",
|
||||
"A", "B", "V", "G", "D", "E", "Yo", "Zh", "Z", "I", "J",
|
||||
"K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F",
|
||||
"H", "C", "Ch", "Sh", "Sch", "J", "I", "J", "E", "Yu", "Ya"
|
||||
];
|
||||
|
||||
/ **
|
||||
*Сравнивает
|
||||
две
|
||||
строки.
|
||||
*
|
||||
* @ param
|
||||
string | null $str1
|
||||
Первая
|
||||
строка.
|
||||
* @ param
|
||||
string | null $str2
|
||||
Вторая
|
||||
строка.
|
||||
* @ param
|
||||
bool $ignoreCase
|
||||
Игнорировать
|
||||
регистр.
|
||||
*
|
||||
* @ return int
|
||||
Результат
|
||||
сравнения.Возвращаемые
|
||||
значения:
|
||||
*
|
||||
*-1 | значение $str1
|
||||
меньше
|
||||
значения $str2.
|
||||
*0 | значения $str1
|
||||
и $str2
|
||||
равны.
|
||||
*1 | значение $str1
|
||||
больше
|
||||
значения $str2.
|
||||
* /
|
||||
public
|
||||
static
|
||||
function
|
||||
Compare(string | null $str1, string | null $str2, bool $ignoreCase = false): int
|
||||
{
|
||||
// Если
|
||||
оба
|
||||
пусты
|
||||
if (self::IsNullOrWhitespace($str1) & & self: :
|
||||
IsNullOrWhitespace($str2))
|
||||
// - то
|
||||
def Compare(self, str1, str2, ignore_case=False):
|
||||
("""
|
||||
Сравнивает две строки.
|
||||
:param str1: Первая строка.
|
||||
:param str2: Вторая строка.
|
||||
:param ignore_case: Игнорировать регистр. По умолчанию, False.
|
||||
:return: Результат сравнения. Возвращаемые значения:
|
||||
-1 | значение $str1 меньше значения $str2.
|
||||
0 | значения $str1 и $str2 равны.
|
||||
1 | значение $str1 больше значения $str2.
|
||||
"""
|
||||
# Если обе строки пусты
|
||||
# if (self::IsNullOrWhitespace($str1) and self::sNullOrWhitespace($str2)):
|
||||
# // - то
|
||||
равны
|
||||
return 0;
|
||||
|
||||
@@ -84,7 +34,7 @@ return 0;
|
||||
второй
|
||||
пуст
|
||||
if (!self::IsNullOrWhitespace($str1) & & self: :
|
||||
IsNullOrWhitespace($str2))
|
||||
IsNullOrWhitespace($str2))
|
||||
// - то
|
||||
первый
|
||||
больше
|
||||
@@ -99,7 +49,7 @@ return 1;
|
||||
не
|
||||
пуст
|
||||
if (!self::IsNullOrWhitespace($str1) & & self: :
|
||||
IsNullOrWhitespace($str2))
|
||||
IsNullOrWhitespace($str2))
|
||||
// - то
|
||||
первый
|
||||
меньше
|
||||
@@ -226,8 +176,8 @@ if ($ignoreCase)
|
||||
|
||||
// - если это буква из русского алфавита
|
||||
if (self::
|
||||
IsRussianLetter($letter)) {
|
||||
// -- транслитерирую
|
||||
IsRussianLetter($letter)) {
|
||||
// -- транслитерирую
|
||||
эту
|
||||
букву
|
||||
$resultTransliteration = self::TransliterationFromRussian($letter);
|
||||
|
@@ -0,0 +1,21 @@
|
||||
# anb_python_components/extensions/string_extension_constant.py
|
||||
|
||||
|
||||
class StringExtensionConstants:
|
||||
"""
|
||||
Константы для расширения строк.
|
||||
"""
|
||||
|
||||
# Кортеж из русских букв
|
||||
russian_letters = ('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р',
|
||||
'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', 'А', 'Б', 'В',
|
||||
'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У',
|
||||
'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я')
|
||||
|
||||
# Кортеж из русских букв в транслитерации
|
||||
russian_letters_transliteration = ("a", "b", "v", "g", "d", "e", "yo", "zh", "z", "i", "j",
|
||||
"k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f",
|
||||
"h", "c", "ch", "sh", "sch", "j", "i", "j", "e", "yu", "ya",
|
||||
"A", "B", "V", "G", "D", "E", "Yo", "Zh", "Z", "I", "J",
|
||||
"K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F",
|
||||
"H", "C", "Ch", "Sh", "Sch", "J", "I", "J", "E", "Yu", "Ya")
|
Reference in New Issue
Block a user