Powershell — Строки (Часть 1). В первой части мы рассмотрели примерно половину всех возможных свойств и методов работы со строкой. В этой статье мы разберем оставшуюся половину и попробуем написать интересные кейсы, которые помогут вам экспериментировать.
Powershell — Строки
Не будет ходить вокруг да около Давайте продолжим с места, на котором остановились. А остановились мы на сравнении строк методом CompareTo.
-
Как сравнить строки? — str.Equals()
Метод проводит сравнение между строками. В отличии от CompareTo, который выводит нули и единицы, метод Equals выводит True или False:
1 2 3 4 5 6 7 |
$text="Too many of random object models" $text2 = $text $text2.Equals($text) True $text2 = $text2 + "on page" $text2.Equals($text) False |
У метода Equals есть реализация в виде оператора -eq, который выполняет такую же операцию. Соответственно можно воспользоваться инструкцией:
1 2 |
$text2 -eq $text False |
-
Как найти совпадения в строке? — str.Contains()
Этот метод определяет, содержится ли подстрока в строке и в зависимости от результата выводит True или False:
1 2 3 4 5 6 7 8 |
$text2.Contains("Too") True $text2.Contains($text) True $text2.Contains($text + "on page") True $text2.Contains($text + "on street") False |
-
Как найти значение в начале или конце строки? — str.StartsWith()/str.EndsWith()
Это регистрозависимые методы, которые определяют начинается ли строка с указанной подстроки(StartWith) и заканчивается ли строка указанной подстрокой (EndsWith). В зависимости от результата методы возвращают True или False:
1 2 3 4 5 6 7 8 |
$text.StartsWith("Too") True $text.StartsWith("many") False $text.EndsWith("many") False $text.EndsWith("models") True |
-
Как сделать все символы строки строчными или заглавнойstr.ToUpper()/str.ToLower()
Это два регистрозависимых метода, которые приводят всю строку к заглавным буквам (ToUpper) и наоборот вся строка приводится к строчным буквам (ToLower):
1 2 3 4 5 |
$text3 = $text $text3.ToUpper() TOO MANY OF RANDOM OBJECT MODELS $text3.ToLower() too many of random object models |
-
Как найти первое вхождение значения? — str.IndexOf()
Метод определяет индекс первого вхождения подстроки в строке. Создаем новую переменную:
1 2 3 |
$string = "i'm the best, i'm best of the best, i'm best of best of the best" $string.IndexOf("best") 8 |
-
Как найти последнее вхождение значения? — str.LastIndexOf()
А этот метод определяет индекс последнего вхождения подстроки в строке и выглядит это так:
1 2 |
$string.LastIndexOf("best") 60 |
-
Как найти первое вхождение любого из переданных значений? — str.IndexOfAny()
Этот метод будет искать самое первое вхождение любого из символов слова или букв, переданных параметром методу:
1 2 |
$string.IndexOfAny("best") 4 |
В строке в индексом 4 у нас находится буква t.
-
Как найти последнее вхождение любого из переданных значений? — str.LastIndexOfAny()
Будет искать самое последнее вхождение любого из символов слова или букв, которые будут переданы в качестве параметра методу:
1 2 |
$string.LastIndexOfAny("best") 63 |
Снова попала буква t, которая является последним символом переменной.
-
Как добавить в начало или конец строки символы? — str.PadLeft/Right()
Методы позволяют дополнять строку до нужного количества символов. Можно использовать как совместно, так и раздельно:
1 2 3 4 5 6 7 8 |
$string.PadLeft(67, ".") ...i'm the best, i'm best of the best, i'm best of best of the best $string.PadRight(71, "!") i'm the best, i'm best of the best, i'm best of best of the best!!!!!!! $string.PadRight(67, "!").PadLeft(71, ".") ....i'm the best, i'm best of the best, i'm best of best of the best!!! |
-
Как обрезать повторяющиеся символы в начале или конце строки? — str.TrimStart/str.TrimEnd/str.Trim
Методы TrimStart, TrimEnd и Trim обрезают повторяющиеся символы по бокам строки. Start делает это в начале, End в конце, а Trim по обеим сторонам:
1 2 3 4 5 6 7 8 |
$substring.TrimStart(".") i'm the best, i'm best of the best, i'm best of best of the best!!! $substring.TrimEnd("!") ....i'm the best, i'm best of the best, i'm best of best of the best $substring.Trim("!", ".") i'm the best, i'm best of the best, i'm best of best of the best |
Итог:
В целом обработка строк обычными методами на этом завершается. Тем не менее, есть еще статические методы, которые позволяют обрабатывать строки. В ближайшее время появится статья и на тему работы статических методов. А на сегодня спринт по обработке строк завершен! Надеемся статья была для вас полезна! Если у вас остались вопросы — задавайте их в комментариях, ответим всем и каждому. Не забывайте про сообщество в контакте и канал на ютубчике!