Example:
String1 = "AbBaCca";
String2 = "bac";
I want to perform a check that String1 contains String2 or not.
asked Jul 9, 2018 at 5:00
Kotlin has stdlib
package to perform certain extension function operation over the string, you can check this method it will check the substring in a string, you can ignore the case by passing true/false value. Refer this link
"AbBaCca".contains("bac", ignoreCase = true)
zsmb13
84.4k10 gold badges220 silver badges224 bronze badges
answered Jul 9, 2018 at 5:08
Aseem SharmaAseem Sharma
1,65312 silver badges19 bronze badges
The most idiomatic way to check this is to use the in
operator:
String2 in String1
This is equivalent to calling contains()
, but shorter and more readable.
answered Jul 9, 2018 at 6:25
yoleyole
91.9k20 gold badges258 silver badges197 bronze badges
3
You can do it by using the “in” – operator, e.g.
val url : String = "http://www.google.de"
val check : Boolean = "http" in url
check has the value true then. 🙂
answered Jun 15, 2021 at 11:39
IskandirIskandir
8681 gold badge9 silver badges20 bronze badges
1
See the contains
method in the documentation.
String1.contains(String2);
answered Jul 9, 2018 at 5:05
geco17geco17
5,1123 gold badges21 silver badges38 bronze badges
Kotlin has a few different contains function on Strings, see here: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/contains.html.
If you want it to be true that string2 is contained in string1 (ie you want to ignore case), they even have a convenient boolean argument for you, so you won’t need to convert to lowercase first.
answered Jul 9, 2018 at 5:05
htuy42htuy42
3073 silver badges10 bronze badges
For anyone out there like me who wanted to do this for a nullable String, that is, String?, here is my solution:
operator fun String?.contains(substring:String): Boolean {
return if (this is String) {
// Need to convert to CharSequence, otherwise keeps calling my
// contains in an endless loop.
val charSequence: CharSequence = this
charSequence.contains(substring)
} else {
false
}
}
// Uses Kotlin convention of converting 'in' to operator 'contains'
if (shortString in nullableLongString) {
// TODO: Your stuff goes here!
}
answered Dec 31, 2021 at 0:28
codingjeremycodingjeremy
5,0371 gold badge35 silver badges38 bronze badges
В этой статье рассматриваются различные способы поиска индексов всех вхождений символа или подстроки в строку Kotlin.
1. Найти все индексы персонажа
The indexOf()
Функция возвращает только индекс “первого” появления символа в строке, как показано ниже:
fun main() { val s = “one, two, three, four, five” val c = ‘,’ val index = s.indexOf(c) println(index) // 3 } |
Скачать код
Точно так же lastIndexOf()
Функция возвращает индекс “последнего” появления символа в строке.
fun main() { val s = “one, two, three, four, five” val c = ‘,’ val lastIndex = s.lastIndexOf(c) println(lastIndex) // 16 } |
Скачать код
Чтобы найти индекс всех экземпляров символа в строке, эффективно вызовите метод indexOf()
повторяться в цикле. Обратите внимание, что поиск следующего индекса начинается с предыдущего индекса.
fun main() { val s = “one, two, three, four, five” val c = ‘,’ var index = s.indexOf(c) while (index != –1) { println(index) index = s.indexOf(c, index + 1) } } |
Скачать код
результат:
3
8
15
21
Это эквивалентно:
fun main() { val s = “one, two, three, four, five” val c = ‘,’ var index = –1 while (s.indexOf(c, index + 1).also { index = it } != –1) { println(index) } } |
Скачать код
результат:
3
8
15
21
2. Найти все индексы подстроки
Мы можем использовать RegEx, чтобы найти индексы всех вхождений “подстроки” в String. Типичная реализация этого подхода будет выглядеть так:
fun main() { val string = “One, Two, Three, Four, Five” val pattern = “o” val indices = Regex(pattern).findAll(string) .map { it.range.first } .toList() println(indices) // [7, 18] } |
Скачать код
Чтобы включить поиск без учета регистра, укажите IGNORE_CASE
вариант регулярного выражения.
fun main() { val string = “One, Two, Three, Four, Five” val pattern = “o” val indices = Regex(pattern, RegexOption.IGNORE_CASE).findAll(string) .map { it.range.first } .toList() println(indices) // [0, 7, 18] } |
Скачать код
Мы можем обрабатывать некоторые специальные входные данные, такие как перекрывающиеся символы, изменив регулярное выражение для использования положительного просмотра вперед. Например,
fun main() { val string = “aaa” val pattern = “aa” var indices = Regex(pattern).findAll(string).map { it.range.first }.toList() println(indices) // [0] indices = Regex(“(?=$pattern)”).findAll(string).map { it.range.first }.toList() println(indices) // [0, 1] } |
Скачать код
Это все о поиске индексов всех вхождений символа или подстроки в строку Kotlin.
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
all
Возвращает true
если все символы соответствуют заданному предикату .
fun CharSequence.all(predicate: (Char) -> Boolean): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
any
Возвращает true
если последовательность символов содержит хотя бы один символ.
fun CharSequence.any(): Boolean
Возвращает true
если хотя бы один символ соответствует заданному предикату .
fun CharSequence.any(predicate: (Char) -> Boolean): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
asIterable
Создает экземпляр Iterable, который обертывает исходную последовательность символов, возвращая ее символы при итерации.
fun CharSequence.asIterable(): Iterable<Char>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
asSequence
Создает экземпляр Sequence, который обертывает исходную последовательность символов, возвращая ее символы при повторении.
fun CharSequence.asSequence(): Sequence<Char>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
associate
Возвращает карту, содержащую пары ключ-значение, предоставленные функцией преобразования, примененной к символам данной последовательности символов.
fun <K, V> CharSequence.associate(
transform: (Char) -> Pair<K, V>
): Map<K, V>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
associateBy
Возвращает карту, содержащую символы из данной последовательности символов, проиндексированных ключом, возвращенным функцией keySelector, примененной к каждому символу.
fun <K> CharSequence.associateBy( keySelector: (Char) -> K ): Map<K, Char>
Возвращает карту, содержащую значения, предоставленные valueTransform и проиндексированные функциями keySelector, примененными к символам данной последовательности символов.
fun <K, V> CharSequence.associateBy(
keySelector: (Char) -> K,
valueTransform: (Char) -> V
): Map<K, V>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
associateByTo
Заполняет и возвращает изменяемую карту назначения парами «ключ-значение», где ключ предоставляется функцией keySelector, применяемой к каждому символу данной последовательности символов, а значение – это сам символ.
fun <K, M : MutableMap<in K, in Char>> CharSequence.associateByTo(
destination: M,
keySelector: (Char) -> K
): M
Заполняет и возвращает изменяемую карту назначения парами ключ-значение, где ключ предоставляется функцией keySelector, а значение предоставляется функцией valueTransform, применяемой к символам данной последовательности символов.
fun <K, V, M : MutableMap<in K, in V>> CharSequence.associateByTo(
destination: M,
keySelector: (Char) -> K,
valueTransform: (Char) -> V
): M
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
associateTo
Заполняет и возвращает изменяемую карту назначения парами «ключ-значение», предоставленными функцией преобразования, применяемой к каждому символу данной последовательности символов.
fun <K, V, M : MutableMap<in K, in V>> CharSequence.associateTo(
destination: M,
transform: (Char) -> Pair<K, V>
): M
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
associateWith
Возвращает карту, где ключи являются символами из заданной последовательности символов, а значения создаются функцией valueSelector, примененной к каждому символу.
fun <V> CharSequence.associateWith( valueSelector: (Char) -> V ): Map<Char, V>
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
associateWithTo
Заполняет и возвращает изменяемую карту назначения парами «ключ-значение» для каждого символа данной последовательности символов, где ключ – это сам символ, а значение предоставляется функцией valueSelector, примененной к этому ключу.
fun <V, M : MutableMap<in Char, in V>> CharSequence.associateWithTo(
destination: M,
valueSelector: (Char) -> V
): M
Требования к платформе и версии: JVM (1.0)
byteInputStream
Создает новый поток ввода байта для строки.
fun String.byteInputStream(
charset: Charset = Charsets.UTF_8
): ByteArrayInputStream
Требования к платформе и версии: JVM (1.4)
capitalize
Возвращает копию этой строки с заголовком первой буквы, основанной на правилах указанного языкового стандарта , или исходную строку, если она пуста или уже начинается с буквы регистра заголовка.
fun String.capitalize(locale: Locale): String
Требования к платформе и версии: JVM (1.2), JS (1.2), Native (1.2)
chunked
Разбивает эту последовательность символов на список строк, каждая из которых не превышает заданного размера .
fun CharSequence.chunked(size: Int): List<String>
Разбивает эту последовательность символов на несколько последовательностей символов, каждая из которых не превышает заданного размера, и применяет данную функцию преобразования к каждому из них.
fun <R> CharSequence.chunked(
size: Int,
transform: (CharSequence) -> R
): List<R>
Требования к платформе и версии: JVM (1.2), JS (1.2), Native (1.2)
chunkedSequence
Разбивает эту последовательность символов на последовательность строк, каждая из которых не превышает заданного размера .
fun CharSequence.chunkedSequence(size: Int): Sequence<String>
Разбивает эту последовательность символов на несколько последовательностей символов, каждая из которых не превышает заданного размера, и применяет данную функцию преобразования к каждому из них.
fun <R> CharSequence.chunkedSequence(
size: Int,
transform: (CharSequence) -> R
): Sequence<R>
Требования к платформе и версии: JVM (1.0)
codePointAt
Возвращает символ (точка юникода)на указанном индексе.
fun String.codePointAt(index: Int): Int
Требования к платформе и версии: JVM (1.0)
codePointBefore
Возвращает символ (точка юникода)перед указанным индексом.
fun String.codePointBefore(index: Int): Int
Требования к платформе и версии: JVM (1.0)
codePointCount
Возвращает количество точек кода Юникода в указанном текстовом диапазоне данной Строки.
fun String.codePointCount( beginIndex: Int, endIndex: Int ): Int
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
coerceAtLeast
Гарантирует, что это значение не меньше указанного минимального значения .
fun <T : Comparable<T>> T.coerceAtLeast(minimumValue: T): T
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
coerceAtMost
Гарантирует, что это значение не превышает указанное значение maximumValue .
fun <T : Comparable<T>> T.coerceAtMost(maximumValue: T): T
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
coerceIn
Гарантирует, что это значение находится в указанном диапазоне minimumValue .. maximumValue .
fun <T : Comparable<T>> T.coerceIn(
minimumValue: T?,
maximumValue: T?
): T
Гарантирует, что это значение находится в указанном диапазоне .
fun <T : Comparable<T>> T.coerceIn(
range: ClosedFloatingPointRange<T>
): T
fun <T : Comparable<T>> T.coerceIn(range: ClosedRange<T>): T
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
commonPrefixWith
Возвращает prefix
самой длинной строки , так что эта последовательность символов и другая последовательность символов начинаются с этого префикса, стараясь не разбивать суррогатные пары. Если этот и другие не имеют общего префикса, возвращает пустую строку.
fun CharSequence.commonPrefixWith(
other: CharSequence,
ignoreCase: Boolean = false
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
commonSuffixWith
Возвращает самый длинный строковый suffix
, так что эта последовательность символов и другая последовательность символов заканчиваются этим суффиксом, стараясь не разбивать суррогатные пары. Если этот и другие не имеют общего суффикса, возвращает пустую строку.
fun CharSequence.commonSuffixWith(
other: CharSequence,
ignoreCase: Boolean = false
): String
Требования к платформе и версии: JVM (1.6), JS (1.6), Native (1.6)
compareTo
Сравнивает этот объект с указанным объектом для заказа. Возвращает ноль, если этот объект равен указанному другому объекту, отрицательное число, если оно меньше другого , или положительное число, если оно больше другого .
infix fun <T> Comparable<T>.compareTo(other: T): Int
Требования к платформе и версии: JS (1.1)
concat
fun String.concat(str: String): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
contains
Возвращает true
если эта последовательность символов содержит указанную другую последовательность символов в качестве подстроки.
operator fun CharSequence.contains( other: CharSequence, ignoreCase: Boolean = false ): Boolean
Возвращает true
если эта последовательность символов содержит указанный символ char .
operator fun CharSequence.contains( char: Char, ignoreCase: Boolean = false ): Boolean
Возвращает true
, если эта последовательность символ содержит по крайней мере один матч с регулярным выражением регулярных выражений .
operator fun CharSequence.contains(regex: Regex): Boolean
Требования к платформе и версии: JVM (1.0)
contentEquals
Возвращает true
, если эта строка равна содержимому указанной CharSequence , в противном случае – false
.
fun String.contentEquals(charSequence: CharSequence): Boolean
Возвращает true
, если эта строка равна содержимому указанного StringBuffer , иначе false
.
fun String.contentEquals( stringBuilder: StringBuffer ): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
count
Возвращает длину этой последовательности символов.
fun CharSequence.count(): Int
Возвращает количество символов, соответствующих заданному предикату .
fun CharSequence.count(predicate: (Char) -> Boolean): Int
Требования к платформе и версии: JVM (1.4)
decapitalize
Возвращает копию этой строки с первой буквой в нижнем регистре с использованием правил указанного языкового стандарта или исходной строки, если она пуста или уже начинается со строчной буквы.
fun String.decapitalize(locale: Locale): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
drop
Возвращает строку с удаленными первыми n символами.
fun String.drop(n: Int): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
dropLast
Возвращает строку с удаленными последними n символами.
fun String.dropLast(n: Int): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
dropLastWhile
Возвращает строку, содержащую все символы, кроме последних символов, которые удовлетворяют заданному предикату .
fun String.dropLastWhile(
predicate: (Char) -> Boolean
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
dropWhile
Возвращает строку, содержащую все символы, кроме первых символов, которые удовлетворяют заданному предикату .
fun String.dropWhile(predicate: (Char) -> Boolean): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
elementAtOrElse
Возвращает символ по заданному индексу или результат вызова функции defaultValue, если индекс находится за пределами этой последовательности символов.
fun CharSequence.elementAtOrElse( index: Int, defaultValue: (Int) -> Char ): Char
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
elementAtOrNull
Возвращает символ по заданному индексу или null
, если индекс выходит за пределы этой последовательности символов.
fun CharSequence.elementAtOrNull(index: Int): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
endsWith
Возвращает true
если эта последовательность символов заканчивается указанным символом.
fun CharSequence.endsWith( char: Char, ignoreCase: Boolean = false ): Boolean
Возвращает true
если эта последовательность символов заканчивается указанным суффиксом.
fun CharSequence.endsWith( suffix: CharSequence, ignoreCase: Boolean = false ): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
filter
Возвращает строку, содержащую только те символы из исходной строки, которые соответствуют заданному предикату .
fun String.filter(predicate: (Char) -> Boolean): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
filterIndexed
Возвращает строку, содержащую только те символы из исходной строки, которые соответствуют заданному предикату .
fun String.filterIndexed(
predicate: (index: Int, Char) -> Boolean
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
filterIndexedTo
Добавляет все символы, соответствующие заданному предикату, в заданное место назначения .
fun <C : Appendable> CharSequence.filterIndexedTo(
destination: C,
predicate: (index: Int, Char) -> Boolean
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
filterNot
Возвращает строку, содержащую только те символы из исходной строки, которые не соответствуют заданному предикату .
fun String.filterNot(predicate: (Char) -> Boolean): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
filterNotTo
Добавляет все символы, не соответствующие заданному предикату, в заданное место назначения .
fun <C : Appendable> CharSequence.filterNotTo(
destination: C,
predicate: (Char) -> Boolean
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
filterTo
Добавляет все символы, соответствующие заданному предикату, в заданное место назначения .
fun <C : Appendable> CharSequence.filterTo(
destination: C,
predicate: (Char) -> Boolean
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
find
Возвращает первый символ, соответствующий данному предикату , или null
, если такой символ не был найден.
fun CharSequence.find(predicate: (Char) -> Boolean): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
findAnyOf
Находит первое вхождение любой из указанных строк в этой последовательности символов, начиная с указанного startIndex и, возможно, игнорируя регистр.
fun CharSequence.findAnyOf( strings: Collection<String>, startIndex: Int = 0, ignoreCase: Boolean = false ): Pair<Int, String>?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
findLast
Возвращает последний символ, соответствующий данному предикату , или null
, если такой символ не был найден.
fun CharSequence.findLast( predicate: (Char) -> Boolean ): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
findLastAnyOf
Находит последнее вхождение любой из указанных строк в этой последовательности символов, начиная с указанного startIndex и при необходимости игнорируя регистр.
fun CharSequence.findLastAnyOf( strings: Collection<String>, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Pair<Int, String>?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
first
Возвращает первый символ.
fun CharSequence.first(): Char
Возвращает первый символ, соответствующий заданному предикату .
fun CharSequence.first(predicate: (Char) -> Boolean): Char
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
firstNotNullOf
Возвращает первое ненулевое значение, созданное функцией преобразования , применяемой к символам этой последовательности символов в порядке итерации, или выдает исключение NoSuchElementException, если не было создано ненулевого значения.
fun <R : Any> CharSequence.firstNotNullOf(
transform: (Char) -> R?
): R
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
firstNotNullOfOrNull
Возвращает первое ненулевое значение, созданное функцией преобразования , применяемой к символам этой последовательности символов в порядке итерации, или null
, если ненулевое значение не было создано.
fun <R : Any> CharSequence.firstNotNullOfOrNull(
transform: (Char) -> R?
): R?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
firstOrNull
Возвращает первый символ или null
, если последовательность символов пуста.
fun CharSequence.firstOrNull(): Char?
Возвращает первый символ, соответствующий заданному предикату , или null
, если символ не был найден.
fun CharSequence.firstOrNull( predicate: (Char) -> Boolean ): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
flatMap
Возвращает единый список всех элементов, полученных в результате вызова функции преобразования для каждого символа исходной последовательности символов.
fun <R> CharSequence.flatMap(
transform: (Char) -> Iterable<R>
): List<R>
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
flatMapIndexed
Возвращает единый список всех элементов, полученных в результате вызова функции преобразования для каждого символа и его индекса в исходной последовательности символов.
fun <R> CharSequence.flatMapIndexed(
transform: (index: Int, Char) -> Iterable<R>
): List<R>
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
flatMapIndexedTo
Добавляет все элементы, полученные в результате вызова функции преобразования для каждого символа и его индекса в исходной последовательности символов, в указанное место назначения .
fun <R, C : MutableCollection<in R>> CharSequence.flatMapIndexedTo(
destination: C,
transform: (index: Int, Char) -> Iterable<R>
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
flatMapTo
Добавляет все элементы, полученные в результате вызова функции преобразования для каждого символа исходной последовательности символов, в заданное место назначения .
fun <R, C : MutableCollection<in R>> CharSequence.flatMapTo(
destination: C,
transform: (Char) -> Iterable<R>
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
fold
Накапливает значение, начиная с начального значения и применяя операцию слева направо к текущему значению аккумулятора и каждому символу.
fun <R> CharSequence.fold(
initial: R,
operation: (acc: R, Char) -> R
): R
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
foldIndexed
Накапливает значение, начиная с начального значения и применяя операцию слева направо к текущему значению аккумулятора и каждому символу с его индексом в исходной последовательности символов.
fun <R> CharSequence.foldIndexed(
initial: R,
operation: (index: Int, acc: R, Char) -> R
): R
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
foldRight
Накапливает значение, начиная с начального значения и применяя операцию справа налево к каждому символу и текущему значению аккумулятора.
fun <R> CharSequence.foldRight(
initial: R,
operation: (Char, acc: R) -> R
): R
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
foldRightIndexed
Накапливает значение, начиная с начального значения и применяя операцию справа налево к каждому символу с его индексом в исходной последовательности символов и текущим значением аккумулятора.
fun <R> CharSequence.foldRightIndexed(
initial: R,
operation: (index: Int, Char, acc: R) -> R
): R
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
forEach
Выполняет заданное действие над каждым персонажем.
fun CharSequence.forEach(action: (Char) -> Unit)
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
forEachIndexed
Выполняет заданное действие над каждым символом, обеспечивая порядковый индекс с символом.
fun CharSequence.forEachIndexed(
action: (index: Int, Char) -> Unit)
Требования к платформе и версии: JVM (1.0)
format
Использует эту строку в качестве строки форматирования и возвращает строку,полученную путем подстановки указанных аргументов,используя локаль по умолчанию.
fun String.format(vararg args: Any?): String
Использует эту строку в качестве строки форматирования и возвращает строку,полученную путем подстановки указанных аргументов,используя указанную локаль.
fun String.format(locale: Locale, vararg args: Any?): String
Использует эту строку как строку формата и возвращает строку, полученную путем подстановки указанных аргументов с использованием указанного языкового стандарта. Если языковой стандарт равен null
то локализация не применяется.
fun String.format(locale: Locale?, vararg args: Any?): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
getOrElse
Возвращает символ по заданному индексу или результат вызова функции defaultValue, если индекс находится за пределами этой последовательности символов.
fun CharSequence.getOrElse( index: Int, defaultValue: (Int) -> Char ): Char
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
getOrNull
Возвращает символ по заданному индексу или null
, если индекс выходит за пределы этой последовательности символов.
fun CharSequence.getOrNull(index: Int): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
groupBy
Группирует символы исходной последовательности символов по ключу, возвращаемому данной функцией keySelector, примененной к каждому символу, и возвращает карту, где каждый групповой ключ связан со списком соответствующих символов.
fun <K> CharSequence.groupBy( keySelector: (Char) -> K ): Map<K, List<Char>>
Группирует значения, возвращаемые функцией valueTransform, примененной к каждому символу исходной последовательности символов ключом, возвращенным данной функцией keySelector, примененной к символу, и возвращает карту, где каждый групповой ключ связан со списком соответствующих значений.
fun <K, V> CharSequence.groupBy(
keySelector: (Char) -> K,
valueTransform: (Char) -> V
): Map<K, List<V>>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
groupByTo
Группирует символы исходной последовательности символов по ключу, возвращаемому данной функцией keySelector, примененной к каждому символу, и помещает на карту назначения каждый групповой ключ, связанный со списком соответствующих символов.
fun <K, M : MutableMap<in K, MutableList<Char>>> CharSequence.groupByTo(
destination: M,
keySelector: (Char) -> K
): M
Группирует значения, возвращаемые функцией valueTransform, примененной к каждому символу исходной последовательности символов ключом, возвращенным данной функцией keySelector, примененной к символу, и помещает на карту назначения каждый ключ группы, связанный со списком соответствующих значений.
fun <K, V, M : MutableMap<in K, MutableList<V>>> CharSequence.groupByTo(
destination: M,
keySelector: (Char) -> K,
valueTransform: (Char) -> V
): M
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)
groupingBy
Создает источник группировки из последовательности символов, который будет использоваться позже с одной из операций группирования и сворачивания с использованием указанной функции keySelector для извлечения ключа из каждого символа.
fun <K> CharSequence.groupingBy( keySelector: (Char) -> K ): Grouping<Char, K>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
hasSurrogatePairAt
Возвращает true
, если эта CharSequence имеет суррогатную пару Unicode по указанному индексу .
fun CharSequence.hasSurrogatePairAt(index: Int): Boolean
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
ifBlank
Возвращает эту последовательность символов, если она не пуста и не состоит только из пробельных символов, или результат вызова функции defaultValue в противном случае.
fun <C, R> C.ifBlank( defaultValue: () -> R ): R where C : CharSequence, C : R
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
ifEmpty
Возвращает эту последовательность символов, если она не пуста, или результат вызова функции defaultValue, если последовательность символов пуста.
fun <C, R> C.ifEmpty( defaultValue: () -> R ): R where C : CharSequence, C : R
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
indexOf
Возвращает индекс в этой строке первого вхождения указанного символа, начиная с указанного startIndex .
fun CharSequence.indexOf( char: Char, startIndex: Int = 0, ignoreCase: Boolean = false ): Int
Возвращает индекс в этой последовательности символов первого вхождения указанной строки , начиная с указанного startIndex .
fun CharSequence.indexOf( string: String, startIndex: Int = 0, ignoreCase: Boolean = false ): Int
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
indexOfAny
Находит индекс первого вхождения любого из указанных символов в этой последовательности символов, начиная с указанного startIndex и, возможно, игнорируя регистр.
fun CharSequence.indexOfAny( chars: CharArray, startIndex: Int = 0, ignoreCase: Boolean = false ): Int
Находит индекс первого вхождения любой из указанных строк в этой последовательности символов, начиная с указанного startIndex и, возможно, игнорируя регистр.
fun CharSequence.indexOfAny( strings: Collection<String>, startIndex: Int = 0, ignoreCase: Boolean = false ): Int
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
indexOfFirst
Возвращает индекс первого символа, соответствующего данному предикату , или -1, если последовательность символов не содержит такого символа.
fun CharSequence.indexOfFirst( predicate: (Char) -> Boolean ): Int
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
indexOfLast
Возвращает индекс последнего символа, соответствующего данному предикату , или -1, если последовательность символов не содержит такого символа.
fun CharSequence.indexOfLast( predicate: (Char) -> Boolean ): Int
Требования к платформе и версии: JVM (1.0)
intern
Возвращает каноническое представление для этого строкового объекта.
fun String.intern(): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
isEmpty
Возвращает true
если эта последовательность символов пуста (не содержит символов).
fun CharSequence.isEmpty(): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
isNotBlank
Возвращает true
если эта последовательность символов не пуста и содержит некоторые символы, кроме символов пробела.
fun CharSequence.isNotBlank(): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
isNotEmpty
Возвращает true
если эта последовательность символов не пуста.
fun CharSequence.isNotEmpty(): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
isNullOrBlank
Возвращает true
если эта допускающая значение null последовательность символов является либо null
либо пустой или состоит только из пробельных символов.
fun CharSequence?.isNullOrBlank(): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
isNullOrEmpty
Возвращает true
, если эта последовательность символов, допускающая значение NULL, является либо null
либо пустой.
fun CharSequence?.isNullOrEmpty(): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
iterator
Итератор для символов заданной последовательности символов.
operator fun CharSequence.iterator(): CharIterator
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
last
Возвращает последнего персонажа.
fun CharSequence.last(): Char
Возвращает последний символ, соответствующий заданному предикату .
fun CharSequence.last(predicate: (Char) -> Boolean): Char
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
lastIndexOf
Возвращает индекс в этой последовательности символов последнего вхождения указанного символа, начиная с указанного startIndex .
fun CharSequence.lastIndexOf( char: Char, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int
Возвращает индекс в этой последовательности символов последнего вхождения указанной строки , начиная с указанного startIndex .
fun CharSequence.lastIndexOf( string: String, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
lastIndexOfAny
Находит индекс последнего вхождения любого из указанных символов в этой последовательности символов, начиная с указанного startIndex и, возможно, игнорируя регистр.
fun CharSequence.lastIndexOfAny( chars: CharArray, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int
Находит индекс последнего вхождения любой из указанных строк в этой последовательности символов, начиная с указанного startIndex и, возможно, игнорируя регистр.
fun CharSequence.lastIndexOfAny( strings: Collection<String>, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
lastOrNull
Возвращает последний символ или null
, если последовательность символов пуста.
fun CharSequence.lastOrNull(): Char?
Возвращает последний символ, соответствующий данному предикату , или null
, если такой символ не был найден.
fun CharSequence.lastOrNull( predicate: (Char) -> Boolean ): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
lines
Разделяет эту последовательность символов на список строк,разделенных любой из следующих последовательностей символов:CRLF,LF или CR.
fun CharSequence.lines(): List<String>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
lineSequence
Разделяет эту символьную последовательность на последовательность строк,разделенную любой из следующих символьных последовательностей:CRLF,LF или CR.
fun CharSequence.lineSequence(): Sequence<String>
Требования к платформе и версии: JVM (1.5)
lowercase
Возвращает копию этой строки, преобразованную в нижний регистр с использованием правил указанной локали .
fun String.lowercase(locale: Locale): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
map
Возвращает список, содержащий результаты применения данной функции преобразования к каждому символу в исходной последовательности символов.
fun <R> CharSequence.map(transform: (Char) -> R): List<R>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
mapIndexed
Возвращает список, содержащий результаты применения данной функции преобразования к каждому символу и его индекс в исходной последовательности символов.
fun <R> CharSequence.mapIndexed(
transform: (index: Int, Char) -> R
): List<R>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
mapIndexedNotNull
Возвращает список, содержащий только ненулевые результаты применения данной функции преобразования к каждому символу и его индексу в исходной последовательности символов.
fun <R : Any> CharSequence.mapIndexedNotNull(
transform: (index: Int, Char) -> R?
): List<R>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
mapIndexedNotNullTo
Применяет данную функцию преобразования к каждому символу и его индексу в исходной последовательности символов и добавляет только ненулевые результаты к заданному месту назначения .
fun <R : Any, C : MutableCollection<in R>> CharSequence.mapIndexedNotNullTo(
destination: C,
transform: (index: Int, Char) -> R?
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
mapIndexedTo
Применяет данную функцию преобразования к каждому символу и его индексу в исходной последовательности символов и добавляет результаты в заданное место назначения .
fun <R, C : MutableCollection<in R>> CharSequence.mapIndexedTo(
destination: C,
transform: (index: Int, Char) -> R
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
mapNotNull
Возвращает список, содержащий только ненулевые результаты применения данной функции преобразования к каждому символу в исходной последовательности символов.
fun <R : Any> CharSequence.mapNotNull(
transform: (Char) -> R?
): List<R>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
mapNotNullTo
Применяет данную функцию преобразования к каждому символу в исходной последовательности символов и добавляет только ненулевые результаты в заданное место назначения .
fun <R : Any, C : MutableCollection<in R>> CharSequence.mapNotNullTo(
destination: C,
transform: (Char) -> R?
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
mapTo
Применяет данную функцию преобразования к каждому символу исходной последовательности символов и добавляет результаты в заданное место назначения .
fun <R, C : MutableCollection<in R>> CharSequence.mapTo(
destination: C,
transform: (Char) -> R
): C
Требования к платформе и версии: JS (1.1)
match
fun String.match(regex: String): Array<String>?
matches
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
Возвращает true
, если эта последовательность символов соответствует заданному регулярному выражению.
infix fun CharSequence.matches(regex: Regex): Boolean
Требования к платформе и версии: JS (1.1)
fun String.matches(regex: String): Boolean
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
maxByOrNull
Возвращает первый символ, дающий наибольшее значение данной функции, или null
, если символов нет.
fun <R : Comparable<R>> CharSequence.maxByOrNull( selector: (Char) -> R ): Char?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
maxOf
Возвращает наибольшее значение среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов.
fun <R : Comparable<R>> any_iterable<R>.maxOf(
selector: (Char) -> R
): R
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
maxOfOrNull
Возвращает наибольшее значение среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов, или null
, если символов нет.
fun <R : Comparable<R>> any_iterable<R>.maxOfOrNull(
selector: (Char) -> R
): R?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
maxOfWith
Возвращает наибольшее значение в соответствии с предоставленным компаратором среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов.
fun <R> CharSequence.maxOfWith(
comparator: Comparator<in R>,
selector: (Char) -> R
): R
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
maxOfWithOrNull
Возвращает наибольшее значение в соответствии с предоставленным компаратором среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов, или null
, если символы отсутствуют.
fun <R> CharSequence.maxOfWithOrNull(
comparator: Comparator<in R>,
selector: (Char) -> R
): R?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
maxOrNull
Возвращает наибольший символ или null
если символов нет.
fun CharSequence.maxOrNull(): Char?
maxWith
Требования к платформе и версии: JVM (1.7), JS (1.7), Native (1.7)
Возвращает первый символ, имеющий наибольшее значение в соответствии с предоставленным компаратором .
fun CharSequence.maxWith( comparator: Comparator<in Char> ): Char
Требования к платформе и версии: JVM (1.0)
fun CharSequence.maxWith( comparator: Comparator<in Char> ): Char?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
maxWithOrNull
Возвращает первый символ, имеющий наибольшее значение в соответствии с предоставленным компаратором, или null
, если символы отсутствуют.
fun CharSequence.maxWithOrNull( comparator: Comparator<in Char> ): Char?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
minByOrNull
Возвращает первый символ, дающий наименьшее значение данной функции или null
, если символов нет.
fun <R : Comparable<R>> CharSequence.minByOrNull( selector: (Char) -> R ): Char?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
minOf
Возвращает наименьшее значение среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов.
fun <R : Comparable<R>> any_iterable<R>.minOf(
selector: (Char) -> R
): R
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
minOfOrNull
Возвращает наименьшее значение среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов, или null
, если символов нет.
fun <R : Comparable<R>> any_iterable<R>.minOfOrNull(
selector: (Char) -> R
): R?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
minOfWith
Возвращает наименьшее значение в соответствии с предоставленным компаратором среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов.
fun <R> CharSequence.minOfWith(
comparator: Comparator<in R>,
selector: (Char) -> R
): R
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
minOfWithOrNull
Возвращает наименьшее значение в соответствии с предоставленным компаратором среди всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов, или null
, если символы отсутствуют.
fun <R> CharSequence.minOfWithOrNull(
comparator: Comparator<in R>,
selector: (Char) -> R
): R?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
minOrNull
Возвращает наименьший символ или null
, если символов нет.
fun CharSequence.minOrNull(): Char?
minWith
Требования к платформе и версии: JVM (1.7), JS (1.7), Native (1.7)
Возвращает первый символ, имеющий наименьшее значение в соответствии с предоставленным компаратором .
fun CharSequence.minWith( comparator: Comparator<in Char> ): Char
Требования к платформе и версии: JVM (1.0)
fun CharSequence.minWith( comparator: Comparator<in Char> ): Char?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
minWithOrNull
Возвращает первый символ, имеющий наименьшее значение в соответствии с предоставленным компаратором, или null
, если символы отсутствуют.
fun CharSequence.minWithOrNull( comparator: Comparator<in Char> ): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
none
Возвращает true
если последовательность символов не имеет символов.
fun CharSequence.none(): Boolean
Возвращает true
если ни один символ не соответствует данному предикату .
fun CharSequence.none(predicate: (Char) -> Boolean): Boolean
Требования к платформе и версии: JVM (1.0)
offsetByCodePoints
Возвращает индекс в этой строке, который смещен от данного индекса на кодовые точки codePointOffset .
fun String.offsetByCodePoints( index: Int, codePointOffset: Int ): Int
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)
onEach
Выполняет заданное действие с каждым символом и впоследствии возвращает саму последовательность символов.
fun <S : CharSequence> S.onEach(action: (Char) -> Unit): S
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
onEachIndexed
Выполняет заданное действие над каждым символом, предоставляя последовательный индекс с символом, а затем возвращает саму последовательность символов.
fun <S : CharSequence> S.onEachIndexed(
action: (index: Int, Char) -> Unit
): S
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
orEmpty
Возвращает строку, если она не равна null
, или пустую строку в противном случае.
fun String?.orEmpty(): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
padEnd
Дополняет строку до указанной длины в конце указанным символом или пробелом.
fun String.padEnd(length: Int, padChar: Char = ' '): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
padStart
Дополняет строку до указанной длины в начале указанным символом или пробелом.
fun String.padStart(length: Int, padChar: Char = ' '): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
partition
Разбивает исходную строку на пару строк, где первая строка содержит символы, для которых предикат дал значение true
, а вторая строка содержит символы, для которых предикат дал значение false
.
fun String.partition(
predicate: (Char) -> Boolean
): Pair<String, String>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
prependIndent
Добавляет отступ к каждой строке исходной строки.
fun String.prependIndent(indent: String = " "): String
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
random
Возвращает случайный символ из этой последовательности символов.
fun CharSequence.random(): Char
Возвращает случайный символ из этой последовательности символов,используя указанный источник случайности.
fun CharSequence.random(random: Random): Char
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
randomOrNull
Возвращает случайный символ из этой последовательности символов или null
, если эта последовательность символов пуста.
fun CharSequence.randomOrNull(): Char?
Возвращает случайный символ из этой последовательности символов, используя указанный источник случайности, или null
, если эта последовательность символов пуста.
fun CharSequence.randomOrNull(random: Random): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
rangeTo
Создает диапазон от этого Сопоставимых значений до заданного этого значения.
operator fun <T : Comparable<T>> T.rangeTo( that: T ): ClosedRange<T>
Требования к платформе и версии: JVM (1.7), JS (1.7), Native (1.7)
rangeUntil
Создает открытый диапазон от этого сопоставимого значения до указанного этого значения.
operator fun <T : Comparable<T>> T.rangeUntil( that: T ): OpenEndRange<T>
Требования к платформе и версии: JVM (1.0)
reader
Создает новый читатель для строки.
fun String.reader(): StringReader
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
reduce
Накапливает значение, начиная с первого символа и применяя операцию слева направо к текущему значению аккумулятора и каждому символу.
fun CharSequence.reduce( operation: (acc: Char, Char) -> Char ): Char
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
reduceIndexed
Накапливает значение, начиная с первого символа и применяя операцию слева направо к текущему значению аккумулятора и каждому символу с его индексом в исходной последовательности символов.
fun CharSequence.reduceIndexed( operation: (index: Int, acc: Char, Char) -> Char ): Char
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
reduceIndexedOrNull
Накапливает значение, начиная с первого символа и применяя операцию слева направо к текущему значению аккумулятора и каждому символу с его индексом в исходной последовательности символов.
fun CharSequence.reduceIndexedOrNull( operation: (index: Int, acc: Char, Char) -> Char ): Char?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
reduceOrNull
Накапливает значение, начиная с первого символа и применяя операцию слева направо к текущему значению аккумулятора и каждому символу.
fun CharSequence.reduceOrNull( operation: (acc: Char, Char) -> Char ): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
reduceRight
Накапливает значение, начиная с последнего символа и применяя операцию справа налево к каждому символу и текущему значению аккумулятора.
fun CharSequence.reduceRight( operation: (Char, acc: Char) -> Char ): Char
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
reduceRightIndexed
Накапливает значение, начиная с последнего символа и применяя операцию справа налево к каждому символу с его индексом в исходной последовательности символов и текущим значением аккумулятора.
fun CharSequence.reduceRightIndexed( operation: (index: Int, Char, acc: Char) -> Char ): Char
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
reduceRightIndexedOrNull
Накапливает значение, начиная с последнего символа и применяя операцию справа налево к каждому символу с его индексом в исходной последовательности символов и текущим значением аккумулятора.
fun CharSequence.reduceRightIndexedOrNull( operation: (index: Int, Char, acc: Char) -> Char ): Char?
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
reduceRightOrNull
Накапливает значение, начиная с последнего символа и применяя операцию справа налево к каждому символу и текущему значению аккумулятора.
fun CharSequence.reduceRightOrNull( operation: (Char, acc: Char) -> Char ): Char?
Требования к платформе и версии: Собственная (1.3)
refTo
fun String.refTo(index: Int): CValuesRef<COpaque>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
removePrefix
Если эта строка начинается с данного префикса , возвращает копию этой строки с удаленным префиксом. В противном случае возвращает эту строку.
fun String.removePrefix(prefix: CharSequence): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
removeRange
Удаляет часть строки в заданном диапазоне.
fun String.removeRange(
startIndex: Int,
endIndex: Int
): String
Удаляет часть строки в заданном диапазоне .
fun String.removeRange(range: IntRange): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
removeSuffix
Если эта строка заканчивается заданным суффиксом , возвращает копию этой строки с удаленным суффиксом. В противном случае возвращает эту строку.
fun String.removeSuffix(suffix: CharSequence): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
removeSurrounding
Удаляет из строки заданный префикс и суффикс тогда и только тогда, когда она начинается с префикса и заканчивается суффиксом . В противном случае возвращает эту строку без изменений.
fun String.removeSurrounding(
prefix: CharSequence,
suffix: CharSequence
): String
Удаляет заданную строку разделителя как из начала, так и из конца этой строки тогда и только тогда, когда она начинается и заканчивается разделителем . В противном случае возвращает эту строку без изменений.
fun String.removeSurrounding(delimiter: CharSequence): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replace
Возвращает новую строку, полученную заменой каждой подстроки этой последовательности символов, которая соответствует данному регулярному выражению с данной заменой .
fun CharSequence.replace(
regex: Regex,
replacement: String
): String
Возвращает новую строку, полученную заменой каждой подстроки этой последовательности символов, которая соответствует данному регулярному выражению, результатом преобразования данной функции, которое принимает MatchResult и возвращает строку, которая будет использоваться в качестве замены для этого совпадения.
fun CharSequence.replace(
regex: Regex,
transform: (MatchResult) -> CharSequence
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replaceAfter
Заменить часть строки после первого появления данного разделителя на заменяющую строку. Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.replaceAfter(
delimiter: Char,
replacement: String,
missingDelimiterValue: String = this
): String
fun String.replaceAfter(
delimiter: String,
replacement: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replaceAfterLast
Заменить часть строки после последнего появления данного разделителя на заменяющую строку. Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.replaceAfterLast(
delimiter: String,
replacement: String,
missingDelimiterValue: String = this
): String
fun String.replaceAfterLast(
delimiter: Char,
replacement: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replaceBefore
Заменить часть строки перед первым вхождением данного разделителя на заменяющую строку. Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.replaceBefore(
delimiter: Char,
replacement: String,
missingDelimiterValue: String = this
): String
fun String.replaceBefore(
delimiter: String,
replacement: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replaceBeforeLast
Заменить часть строки перед последним вхождением данного разделителя на заменяющую строку. Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.replaceBeforeLast(
delimiter: Char,
replacement: String,
missingDelimiterValue: String = this
): String
fun String.replaceBeforeLast(
delimiter: String,
replacement: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replaceFirst
Заменяет первое вхождение заданного регулярного выражения регулярных выражений в этой последовательности полукокса с указанной заменой выражением.
fun CharSequence.replaceFirst(
regex: Regex,
replacement: String
): String
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
replaceFirstChar
Возвращает копию этой строки, в которой первый символ заменен на результат указанного преобразования , или исходную строку, если она пуста.
fun String.replaceFirstChar(
transform: (Char) -> Char
): String
fun String.replaceFirstChar(
transform: (Char) -> CharSequence
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replaceIndent
Обнаруживает общий минимальный отступ, как это делает trimIndent, и заменяет его указанным newIndent .
fun String.replaceIndent(newIndent: String = ""): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
replaceRange
Заменяет часть строки в заданном диапазоне на заменяющую последовательность символов.
fun String.replaceRange(
startIndex: Int,
endIndex: Int,
replacement: CharSequence
): String
Замените часть строки в заданном диапазоне на заменяющую строку.
fun String.replaceRange(
range: IntRange,
replacement: CharSequence
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
reversed
Возвращает строку с символами в обратном порядке.
fun String.reversed(): String
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
runningFold
Возвращает список, содержащий последовательные значения накопления, сгенерированные путем применения операции слева направо к каждому символу и текущему значению аккумулятора, которое начинается с начального значения.
fun <R> CharSequence.runningFold(
initial: R,
operation: (acc: R, Char) -> R
): List<R>
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
runningFoldIndexed
Возвращает список, содержащий последовательные значения накопления, сгенерированные применением операции слева направо к каждому символу, его индекс в исходной последовательности символов и текущее значение накопителя, которое начинается с начального значения.
fun <R> CharSequence.runningFoldIndexed(
initial: R,
operation: (index: Int, acc: R, Char) -> R
): List<R>
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
runningReduce
Возвращает список, содержащий последовательные значения накопления, сгенерированные путем применения операции слева направо к каждому символу и текущему значению аккумулятора, которое начинается с первого символа этой последовательности символов.
fun CharSequence.runningReduce( operation: (acc: Char, Char) -> Char ): List<Char>
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
runningReduceIndexed
Возвращает список, содержащий последовательные значения накопления, сгенерированные путем применения операции слева направо к каждому символу, его индекс в исходной последовательности символов и текущее значение накопителя, которое начинается с первого символа этой последовательности символов.
fun CharSequence.runningReduceIndexed( operation: (index: Int, acc: Char, Char) -> Char ): List<Char>
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
scan
Возвращает список, содержащий последовательные значения накопления, сгенерированные путем применения операции слева направо к каждому символу и текущему значению аккумулятора, которое начинается с начального значения.
fun <R> CharSequence.scan(
initial: R,
operation: (acc: R, Char) -> R
): List<R>
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
scanIndexed
Возвращает список, содержащий последовательные значения накопления, сгенерированные применением операции слева направо к каждому символу, его индекс в исходной последовательности символов и текущее значение накопителя, которое начинается с начального значения.
fun <R> CharSequence.scanIndexed(
initial: R,
operation: (index: Int, acc: R, Char) -> R
): List<R>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
single
Возвращает одиночный символ или бросает исключение,если последовательность символов символов символов символов пуста или имеет несколько символов.
fun CharSequence.single(): Char
Возвращает единственный символ, соответствующий заданному предикату , или выдает исключение, если совпадающих символов нет или больше одного.
fun CharSequence.single(predicate: (Char) -> Boolean): Char
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
singleOrNull
Возвращает один символ или null
, если последовательность символов пуста или содержит более одного символа.
fun CharSequence.singleOrNull(): Char?
Возвращает единственный символ, соответствующий данному предикату , или null
, если символ не был найден или было найдено более одного символа.
fun CharSequence.singleOrNull( predicate: (Char) -> Boolean ): Char?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
slice
Возвращает строку, содержащую символы исходной строки в указанном диапазоне индексов .
fun String.slice(indices: IntRange): String
Возвращает строку, содержащую символы исходной строки по указанным индексам .
fun String.slice(indices: Iterable<Int>): String
split
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
Разбивает эту последовательность символов на список строк вокруг вхождений указанных разделителей .
fun CharSequence.split(
vararg delimiters: String,
ignoreCase: Boolean = false,
limit: Int = 0
): List<String>
fun CharSequence.split(
vararg delimiters: Char,
ignoreCase: Boolean = false,
limit: Int = 0
): List<String>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
Разбивает данную последовательность символов на список строк,состоящий из совпадений с заданным регулярным выражением.
fun CharSequence.split(
regex: Regex,
limit: Int = 0
): List<String>
Требования к платформе и версии: JVM (1.0)
Разбивает эту последовательность символов на совпадения заданного регулярного выражения.
fun CharSequence.split(
regex: Pattern,
limit: Int = 0
): List<String>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
splitToSequence
Разбивает эту последовательность символов на последовательность строк вокруг вхождений указанных разделителей .
fun CharSequence.splitToSequence(
vararg delimiters: String,
ignoreCase: Boolean = false,
limit: Int = 0
): Sequence<String>
fun CharSequence.splitToSequence(
vararg delimiters: Char,
ignoreCase: Boolean = false,
limit: Int = 0
): Sequence<String>
Разбивает данную последовательность символов на последовательность строк,состоящую из совпадений с заданным регулярным выражением.
fun CharSequence.splitToSequence(
regex: Regex,
limit: Int = 0
): Sequence<String>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
startsWith
Возвращает true
если эта последовательность символов начинается с указанного символа.
fun CharSequence.startsWith( char: Char, ignoreCase: Boolean = false ): Boolean
Возвращает true
если эта последовательность символов начинается с указанного префикса.
fun CharSequence.startsWith( prefix: CharSequence, ignoreCase: Boolean = false ): Boolean
Возвращает true
если подстрока этой последовательности символов, начинающаяся с указанного смещения startIndex, начинается с указанного префикса.
fun CharSequence.startsWith( prefix: CharSequence, startIndex: Int, ignoreCase: Boolean = false ): Boolean
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
subSequence
Возвращает подпоследовательность этой последовательности графиков.
fun String.subSequence(start: Int, end: Int): CharSequence
Возвращает подпоследовательность этой последовательности символов, заданную заданным диапазоном индексов.
fun CharSequence.subSequence(range: IntRange): CharSequence
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
substring
Возвращает подстроку, указанную в указанном диапазоне индексов.
fun String.substring(range: IntRange): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
substringAfter
Возвращает подстроку после первого вхождения разделителя . Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.substringAfter(
delimiter: Char,
missingDelimiterValue: String = this
): String
fun String.substringAfter(
delimiter: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
substringAfterLast
Возвращает подстроку после последнего вхождения разделителя . Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.substringAfterLast(
delimiter: Char,
missingDelimiterValue: String = this
): String
fun String.substringAfterLast(
delimiter: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
substringBefore
Возвращает подстроку перед первым вхождением разделителя . Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.substringBefore(
delimiter: Char,
missingDelimiterValue: String = this
): String
fun String.substringBefore(
delimiter: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
substringBeforeLast
Возвращает подстроку перед последним вхождением разделителя . Если строка не содержит разделителя, возвращается значение missingDelimiterValue, которое по умолчанию соответствует исходной строке.
fun String.substringBeforeLast(
delimiter: Char,
missingDelimiterValue: String = this
): String
fun String.substringBeforeLast(
delimiter: String,
missingDelimiterValue: String = this
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
sumBy
Возвращает сумму всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов.
fun CharSequence.sumBy(selector: (Char) -> Int): Int
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
sumByDouble
Возвращает сумму всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов.
fun CharSequence.sumByDouble( selector: (Char) -> Double ): Double
sumOf
Возвращает сумму всех значений, созданных функцией селектора, примененной к каждому символу в последовательности символов.
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
fun CharSequence.sumOf(selector: (Char) -> Double): Double
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
fun CharSequence.sumOf(selector: (Char) -> Int): Int
Требования к платформе и версии: JVM (1.4), JS (1.4), Native (1.4)
fun CharSequence.sumOf(selector: (Char) -> Long): Long
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
fun CharSequence.sumOf(selector: (Char) -> UInt): UInt
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
fun CharSequence.sumOf(selector: (Char) -> ULong): ULong
Требования к платформе и версии: JVM (1.4)
fun CharSequence.sumOf(
selector: (Char) -> BigDecimal
): BigDecimal
Требования к платформе и версии: JVM (1.4)
fun CharSequence.sumOf(
selector: (Char) -> BigInteger
): BigInteger
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
take
Возвращает строку, содержащую первые n символов из этой строки, или всю строку, если эта строка короче.
fun String.take(n: Int): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
takeLast
Возвращает строку, содержащую последние n символов из этой строки, или всю строку, если эта строка короче.
fun String.takeLast(n: Int): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
takeLastWhile
Возвращает строку, содержащую последние символы, удовлетворяющие заданному предикату .
fun String.takeLastWhile(
predicate: (Char) -> Boolean
): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
takeWhile
Возвращает строку, содержащую первые символы, удовлетворяющие заданному предикату .
fun String.takeWhile(predicate: (Char) -> Boolean): String
Требования к платформе и версии: JVM (1.2)
toBigDecimal
Анализирует строку как число java.math.BigDecimal и возвращает результат.
fun String.toBigDecimal(): BigDecimal
fun String.toBigDecimal(mathContext: MathContext): BigDecimal
Требования к платформе и версии: JVM (1.2)
toBigDecimalOrNull
Анализирует строку как java.math.BigDecimal числа и возвращает результат или null
, если строка не является правильным представлением числа.
fun String.toBigDecimalOrNull(): BigDecimal?
fun String.toBigDecimalOrNull(
mathContext: MathContext
): BigDecimal?
Требования к платформе и версии: JVM (1.2)
toBigInteger
Анализирует строку как число java.math.BigInteger и возвращает результат.
fun String.toBigInteger(): BigInteger
fun String.toBigInteger(radix: Int): BigInteger
Требования к платформе и версии: JVM (1.2)
toBigIntegerOrNull
Анализирует строку как java.math.BigInteger числа и возвращает результат или null
, если строка не является правильным представлением числа.
fun String.toBigIntegerOrNull(): BigInteger?
fun String.toBigIntegerOrNull(radix: Int): BigInteger?
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toBooleanStrict
Возвращает true
если содержимое этой строки равно слову «истина», false
если оно равно «ложь», и вызывает исключение в противном случае.
fun String.toBooleanStrict(): Boolean
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toBooleanStrictOrNull
Возвращает true
, если содержимое этой строки равно слову «true», false
, если оно равно «false», и null
в противном случае.
fun String.toBooleanStrictOrNull(): Boolean?
Требования к платформе и версии: JVM (1.0)
toByteArray
Кодирует содержимое этой строки,используя указанный набор символов,и возвращает результирующий массив байтов.
fun String.toByteArray(
charset: Charset = Charsets.UTF_8
): ByteArray
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)
toByteOrNull
Анализирует строку как число байта со знаком и возвращает результат или null
если строка не является допустимым представлением числа.
fun String.toByteOrNull(): Byte?
fun String.toByteOrNull(radix: Int): Byte?
Требования к платформе и версии: JVM (1.0)
toCharArray
Копирует символы из этой строки в целевой массив символов и возвращает этот массив.
fun String.toCharArray(
destination: CharArray,
destinationOffset: Int = 0,
startIndex: Int = 0,
endIndex: Int = length
): CharArray
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
toCollection
Добавляет все символы в данной целевой коллекции.
fun <C : MutableCollection<in Char>> CharSequence.toCollection(
destination: C
): C
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
toHashSet
Возвращает новый HashSet всех символов.
fun CharSequence.toHashSet(): HashSet<Char>
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)
toIntOrNull
Анализирует строку как число Int и возвращает результат или null
если строка не является допустимым представлением числа.
fun String.toIntOrNull(): Int?
fun String.toIntOrNull(radix: Int): Int?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
toList
Возвращает список, содержащий все символы.
fun CharSequence.toList(): List<Char>
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)
toLongOrNull
Анализирует строку как длинное число и возвращает результат или null
если строка не является допустимым представлением числа.
fun String.toLongOrNull(): Long?
fun String.toLongOrNull(radix: Int): Long?
Требования к платформе и версии: JVM (1.0)
toLowerCase
Возвращает копию этой строки,преобразованную в нижний регистр по правилам указанной локали.
fun String.toLowerCase(locale: Locale): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
toMutableList
Возвращает новый MutableList, заполненный всеми символами этой последовательности символов.
fun CharSequence.toMutableList(): MutableList<Char>
Требования к платформе и версии: JVM (1.0)
toPattern
Преобразует строку в регулярное выражение Pattern ( необязательно) с указанными флагами из Pattern или вместе, чтобы строки можно было разделить или сопоставить.
fun String.toPattern(flags: Int = 0): Pattern
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
toRegex
Преобразует строку в регулярное выражение Regex с параметрами по умолчанию.
fun String.toRegex(): Regex
Преобразует строку в регулярное выражение Regex с указанным единственным параметром .
fun String.toRegex(option: RegexOption): Regex
Преобразует строку в регулярное выражение Regex с указанным набором параметров .
fun String.toRegex(options: Set<RegexOption>): Regex
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
toSet
Возвращает набор всех символов.
fun CharSequence.toSet(): Set<Char>
Требования к платформе и версии: JVM (1.1), JS (1.1), Native (1.1)
toShortOrNull
Анализирует строку как короткое число и возвращает результат или null
если строка не является допустимым представлением числа.
fun String.toShortOrNull(): Short?
fun String.toShortOrNull(radix: Int): Short?
Требования к платформе и версии: JVM (1.0)
toSortedSet
Возвращает новый SortedSet всех символов.
fun CharSequence.toSortedSet(): SortedSet<Char>
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toUByte
Анализирует строку как подписанное число UByte и возвращает результат.
fun String.toUByte(): UByte
fun String.toUByte(radix: Int): UByte
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toUByteOrNull
Анализирует строку как UBYTE числа и возвращает результат или null
, если строка не является правильным представлением числа.
fun String.toUByteOrNull(): UByte?
fun String.toUByteOrNull(radix: Int): UByte?
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toUInt
Анализирует строку как число UInt и возвращает результат.
fun String.toUInt(): UInt
fun String.toUInt(radix: Int): UInt
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toUIntOrNull
Анализирует строку как UInt числа и возвращает результат или null
, если строка не является правильным представлением числа.
fun String.toUIntOrNull(): UInt?
fun String.toUIntOrNull(radix: Int): UInt?
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toULong
Анализирует строку как число ULong и возвращает результат.
fun String.toULong(): ULong
fun String.toULong(radix: Int): ULong
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toULongOrNull
Анализирует строку как ULong числа и возвращает результат или null
, если строка не является правильным представлением числа.
fun String.toULongOrNull(): ULong?
fun String.toULongOrNull(radix: Int): ULong?
Требования к платформе и версии: JVM (1.0)
toUpperCase
Возвращает копию этой строки,преобразованную в верхний регистр по правилам указанной локали.
fun String.toUpperCase(locale: Locale): String
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toUShort
Анализирует строку как номер UShort и возвращает результат.
fun String.toUShort(): UShort
fun String.toUShort(radix: Int): UShort
Требования к платформе и версии: JVM (1.5), JS (1.5), Native (1.5)
toUShortOrNull
Анализирует строку как UShort числа и возвращает результат или null
, если строка не является правильным представлением числа.
fun String.toUShortOrNull(): UShort?
fun String.toUShortOrNull(radix: Int): UShort?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
trim
Возвращает строку с начальными и конечными символами, соответствующими удаленному предикату .
fun String.trim(predicate: (Char) -> Boolean): String
Возвращает строку с удаленными начальными и конечными символами из массива chars .
fun String.trim(vararg chars: Char): String
Возвращает строку с удалением лидирующего и скользящего пробела.
fun String.trim(): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
trimEnd
Возвращает строку с завершающими символами, соответствующими удаленному предикату .
fun String.trimEnd(predicate: (Char) -> Boolean): String
Возвращает строку с удаленными завершающими символами из массива chars .
fun String.trimEnd(vararg chars: Char): String
Возвращает строку с удаленными пробелами.
fun String.trimEnd(): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
trimIndent
Обнаруживает общий минимальный отступ всех строк ввода,удаляет его из каждой строки,а также удаляет первую и последнюю строки,если они пустые (обратите внимание на разницу между пустыми и пустыми).
fun String.trimIndent(): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
trimMargin
Обрезает начальные пробельные символы, за которыми следует marginPrefix, из каждой строки исходной строки и удаляет первую и последнюю строки, если они пустые (обратите внимание на разницу между пустым и пустым).
fun String.trimMargin(marginPrefix: String = "|"): String
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
trimStart
Возвращает строку с начальными символами, соответствующими удаленному предикату .
fun String.trimStart(predicate: (Char) -> Boolean): String
Возвращает строку с удаленными ведущими символами из массива chars .
fun String.trimStart(vararg chars: Char): String
Возвращает строку с удалением лидирующего пробела.
fun String.trimStart(): String
Требования к платформе и версии: JVM (1.5)
uppercase
Возвращает копию этой строки, преобразованную в верхний регистр с использованием правил указанной локали .
fun String.uppercase(locale: Locale): String
Требования к платформе и версии: JVM (1.2), JS (1.2), Native (1.2)
windowed
Возвращает список снимков окна заданного размера, скользящего по этой последовательности символов с заданным шагом , где каждый снимок представляет собой строку.
fun CharSequence.windowed(
size: Int,
step: Int = 1,
partialWindows: Boolean = false
): List<String>
Возвращает список результатов применения данной функции преобразования к каждой последовательности символов, представляющей вид окна заданного размера, скользящего по этой последовательности символов с заданным шагом .
fun <R> CharSequence.windowed(
size: Int,
step: Int = 1,
partialWindows: Boolean = false,
transform: (CharSequence) -> R
): List<R>
Требования к платформе и версии: JVM (1.2), JS (1.2), Native (1.2)
windowedSequence
Возвращает последовательность снимков окна заданного размера, скользящую по этой последовательности символов с заданным шагом , где каждый снимок представляет собой строку.
fun CharSequence.windowedSequence(
size: Int,
step: Int = 1,
partialWindows: Boolean = false
): Sequence<String>
Возвращает последовательность результатов применения данной функции преобразования к каждой последовательности символов, представляющей вид окна заданного размера, скользящего по этой последовательности символов с заданным шагом .
fun <R> CharSequence.windowedSequence(
size: Int,
step: Int = 1,
partialWindows: Boolean = false,
transform: (CharSequence) -> R
): Sequence<R>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
withIndex
Возвращает ленивый Iterable, который оборачивает каждый символ исходной последовательности символов в IndexedValue, содержащее индекс этого символа и сам символ.
fun CharSequence.withIndex(): Iterable<IndexedValue<Char>>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)
zip
Возвращает список пар, составленных из символов this
и других последовательностей символов с тем же индексом. Возвращенный список имеет длину самой короткой последовательности символов.
infix fun CharSequence.zip( other: CharSequence ): List<Pair<Char, Char>>
Возвращает список значений, составленный из символов this
и других последовательностей символов с тем же индексом, используя предоставленную функцию преобразования, примененную к каждой паре символов. Возвращенный список имеет длину самой короткой последовательности символов.
fun <V> CharSequence.zip(
other: CharSequence,
transform: (a: Char, b: Char) -> V
): List<V>
Требования к платформе и версии: JVM (1.2), JS (1.2), Native (1.2)
zipWithNext
Возвращает список пар каждых двух соседних символов в этой последовательности графиков.
fun CharSequence.zipWithNext(): List<Pair<Char, Char>>
Возвращает список, содержащий результаты применения данной функции преобразования к каждой паре двух соседних символов в этой последовательности символов.
fun <R> CharSequence.zipWithNext(
transform: (a: Char, b: Char) -> R
): List<R>
Строки
Пробежаться по строке
Конвертируем строку в число
Дополняем строку символами
replace()/replaceRange()
Конвертируем строку в дату
StringBuilder
Со строками в Kotlin работать стало проще.
Поздороваемся с котом по имени Барсик.
val catName: String = "Барсик"
println("Привет $catName! Как дела?")
Обратите внимание, что мы добавили знак доллара к имени переменной и используем её прямо в строке. В Java нам пришлось бы разбивать строку и соединять её с помощью конкатенации.
// Java
println("Привет " + catName + "! Как дела?");
Кстати, такой код тоже будет работать, но первый способ гораздо удобнее.
Мы понимаем, что речь идёт о строке, поэтому можно было написать код без указания типа.
val catName = "Барсик"
Если вам вдруг захочется вывести символ доллара, то используйте экранирование.
println("Привет $catName! Как дела?")
// выводится: Привет $catName! Как дела?
Мы использовали так называемый “строковый шаблон”. За кулисами происходит соединение при помощи StringBuilder, но более удобным и быстрым способом.
Длину строки можно вычислить через функцию count().
val murzik = "Мурзик"
println(murzik.count())
Функции-расширения
Разработчики JetBrains добавили множество готовых функций-расширений для многих классов, в том числе и для строк. Найти их можно в файле String.kt (в студии дважды нажмите клавишу Shift и в поисковой строке наберите имя данного файла для просмотра исходника).
Некоторые примеры функций-расширений представлены ниже. На самом деле их больше, изучайте самостоятельно.
Пробежаться по строке
Строку можно рассматривать как массив символов.
val cat = "Барсик"
val character = cat[2]
println(character) // выводит р
Пробежаться по всей строке без использования индекса.
val cat = "Барсик"
for(char in cat){
println(char)
}
Пробежаться по всей строки с использованием индекса.
val cat = "Барсик"
for (char in cat.indices){
print(cat[char] + "n")
}
Саму строку можно предварительно явно перевести в массив символов.
for(char in cat.toCharArray()){
println(char)
}
Можно вызывать forEach.
cat.forEach { char -> println(char) }
Если вам нужен не только символ строки, но и его индекс, то вызываем forEachIndexed.
cat.forEachIndexed{index, char -> println("Index $index Character $char")}
// Результат
Index 0 Character Б
Index 1 Character а
Index 2 Character р
Index 3 Character с
Index 4 Character и
Index 5 Character к
Если нужно получить отдельный символ строки по индексу без перебора всей строки, то просто указываем нужный индекс.
val cat = "Барсик"
val index = 5
println("Character at index $index in $cat is ${cat[index]}")
Если вы укажете несуществующий индекс, то получите исключение StringIndexOutOfBoundsException, поэтому делайте проверку.
Рассмотрим пример с числами. Допустим нужно произвести арифметические действия с целыми числами и вывести результат в строке.
val a: Int = 9
val b: Int = 1
fun main(args: Array<String>) {
println("Осталось жизней: ${a - b}")
}
Снова используем знак доллара, а действия с числами поместили в фигурные скобки. Kotlin сама разберётся с типами данных и сделает всю работу.
Выведем второй элемент массива.
fun main(args: Array<String>) {
val names = arrayListOf("Мурзик")
names.add("Васька")
names.add("Барсик")
println("Кота зовут ${names[0]}")
}
Опять используем знак доллара и фигурные скобки.
Можно даже использовать условие.
val count = 9
print("value of count is ${if (count == 10) "equal to 10" else "not equal to 10"}")
Многострочный текст можно создать, используя тройные кавычки. Больше нам не нужны символы перевода строки n, а также символы типа t, b, r и т.д.
val multipleStringLines = """
У лукоморья дуб зелёный;
Златая цепь на дубе том:
И днём и ночью кот учёный
Всё ходит по цепи кругом;
Идёт направо - песнь заводит,
Налево - сказку говорит. """
Метод trimMargin() позволяет убрать “пустые” символы из текста по разделителю | (по умолчанию):
val myString = """This is the first line
|This is the second line
|This is the third line
|And fourth line
"""
println(myString.trimMargin())
На выходе получим.
This is the first line
This is the second line
This is the third line
And fourth line
Можно задать свой собственный разделитель и указать его в методе.
trimMargin(">")
Если первая и последняя строки длинного предложения пустые, то они будут удалены и строки.
Можем делать со строкой знакомые операции в удобной обёртке.
val cat = "Барсик"
println(cat.reversed()) // кисраБ
println(cat.takeLast(2)) // ик
val kitty = "[email protected]"
println(kitty.substringBefore("@")) // murzik
Конвертируем строку в число
Сконвертировать строку в число можно через соответствующие методы.
val str = "123"
print(str.toLong())
Если нужно обработать ситуацию с null, то используйте другой метод.
val str = "123.4"
println(str.toLongOrNull()) // вернёт null
По умолчанию мы подразумеваем десятичное счисление. Но возможна конвертация в другой системе счисления – двоичной, восьмеричной и т.д.
val str = "11111111"
print(str.toLongOrNull(2)) //255
val str = "105"
print(str.toLongOrNull(8)) //69
Также есть схожие методы toShort(), toShortOrNull(), toInt(), toIntOrNull(), toFloat(), toDouble() и т.д. Часть из них поддерживает перегруженные версии с другой системой счисления, но проверяйте поддерживаемые системы.
Не совсем про числа, но можно сконвертировать в булево значение.
val str = "false"
println(str.toBoolean())
Дополняем строку символами
Можно дополнить строку символами с самого начала или в конце.
val name = "Barsik"
val pad = name.padStart(10, '#')
println(pad) // ####Barsik
val name = "Barsik"
val pad = name.padEnd(10, '*')
println(pad) // Barsik****
По умолчанию символом дополнения является пробел, поэтому можно вызывать методы без второго параметра, чтобы получить строку с пробелами.
Подстроки
// подстрока с указанного индекса
val result = "developer.alexanderklimov.ru".substring(10) // alexanderklimov.ru
// подстрока до первого указанного разделителя
val first = "developer.alexanderklimov.ru".substringBefore('.') // developer
// подстрока после первого указанного разделителя
val last = "developer.alexanderklimov.ru".substringAfter('.') // alexanderklimov.ru
// подстрока после последнего указанного разделителя
val last = "developer.alexanderklimov.ru".substringAfterLast('.') // ru
// подстрока до последнего указанного разделителя
val beforeLast = "developer.alexanderklimov.ru".substringBeforeLast('.') // developer.alexanderklimov
Ещё пример для получения адреса сайта без http://.
val superSite = "http://developer.alexanderklimov.ru"
val index = superSite.lastIndexOf('/')
println("Индекс нужного нам символа: $index")
println(superSite.substring(index + 1)) // developer.alexanderklimov.ru
// другой вариант
println(superSite.substringAfterLast("/"))
Встроенные функции
Kotlin содержит множество встроенных удобных функций для работы со строками. Часть из них уже использовалась в примерах выше. Упомянем ещё несколько полезных функций.
val blank = " ".isBlank() // true, если пустая строка или пустые символы пробела, табуляции и т.п.
// индекс последнего символа
val lastIndex = "Кот Мурзик".lastIndex // 9
// переводим в верхний регистр первый символ строки
// decapitalize() выполняем обратную задачу
val capitalize = "кот Мурзик".capitalize()
val withSpaces = "1".padStart(2) // добавляем пробел перед строкой
val endZeros = "1".padEnd(3, '0') // "100" добавляем нули в конец
val dropStart = "Kotlin".drop(2) // "tlin" убираем первые символы в указанном количестве
val dropEnd = "Kotlin".dropLast(3) // "Kot" убираем последние символы в указанном количестве
// возвращаем строку без первого символа, который удовлетворяет условию
val string = "Мурзик"
val result = string.dropWhile{
it == 'М'
}
textView.text = result // урзик
// возвращаем строку без последнего символа, который удовлетворяет условию
val string = "Мурзик"
val result = string.dropLastWhile{
it == 'к'
}
textView.text = result // Мурзи
// разбиваем на массив строк
"AnBnC".lines() // [A, B, C]
"ABCD".zipWithNext() // [(A, B), (B, C), (C, D)]
// удаляем символы из заданного диапазона
val string = "Кот, который гулял сам по себе"
val result = string.removeRange(
3..28 // range
)
// Функции removeXXX() хороши для строк в виде ##Cat##, чтобы убрать лишние символы
// удаляем префикс из строки
val string = "Кот, который гулял сам по себе"
val result = string.removePrefix("Кот")
// удаляем суффикс из строки
val string = "Кот, который гулял сам по себе"
val result = string.removeSuffix("себе")
// удаляем заданный разделитель, который должен окружать строку с начала и с конца
val string = "та, тра-та-та, мы везём с собой кота"
val result = string.removeSurrounding(
"та" // delimiter
)
textView.text = result // , тра-та-та, мы везём с собой ко
// Также можно указать разные начало и конец, которые окружают строку
val string = "Тра-та-та, тра-та-та, мы везём с собой кота"
val result = string.removeSurrounding(
"Тра-", // prefix
" кота" // suffix
)
textView.text = result // та-та, тра-та-та, мы везём с собой
// Добавляем отступы при явном переводе на новую строку
val string = "Какой-то длинный текст, nсостоящий из имён котов: " +
"nВаська" +
"nБарсик" +
"nРыжик"
val result = string.prependIndent(
" " // indent
)
// Разбиваем символы на две группы.
// В первую группу попадут символы в верхнем регистре, во вторую - символы в нижнем регистре
val string = "Кот Васька и кот Мурзик - Друзья!"
val result: Pair<String, String> = string.partition {
it.isUpperCase()
}
textView.text = result.first + ":" + result.second //КВМД:от аська и кот урзик - рузья!
// Разбиваем строку на список строк. В качестве разделителя - перевод на новую строку
val string = "Кот ВаськаnКотМурзикnКот Мурзик"
// Split string into lines (CRLF, LF or CR)
val lines: List<String> = string.lines()
textView.text = "Кол-во строк: ${lines.size}"
lines.forEach {
textView.append("n" + it)
}
// Разбиваем строку на список строк с указанным числом символов. В последней строке может выводиться остаток
val string = "Тра-та-та, тра-та-та, мы везём с собой кота"
val list:List<String> = string.chunked(11)
list.forEach {
textView.append("$itn")
}
/*
Тра-та-та,
тра-та-та,
мы везём с
собой кота
*/
// Содержит ли строка только цифры (используем предикат)
val string = "09032020"
// Returns true if all characters match the given predicate.
val result: Boolean = string.all{
it.isDigit()
}
textView.append("Is the string $string contain only digit? $result")
// Содержит ли строка хотя бы одну цифру (используем предикат)
val string = "3 кота"
// Returns true if at least one character matches the given predicate.
val result: Boolean = string.any() {
it.isDigit()
}
textView.append("Is the text "$string" contain any digit? $result")
// Сравниваем две строки с учётом регистра
val string1 = "This is a sample string."
val string2 = "This is a SAMPLE string."
if (string1.compareTo(string2, ignoreCase = true) == 0) {
textView.append("nnBoth strings are equal, ignoring case.")
} else {
textView.append("nnBoth strings are not equal, ignoring case.")
}
Можно фильтровать данные с помощью filter(). Допустим, мы хотим извлечь только цифры из строки.
val string = "9 жизней (2016) - Nine Lives - информация о фильме"
val filteredText = string.filter { it.isDigit() }
textView.text = filteredText // 92016
Если хочется решить обратную задачу и получить только символы, но не цифры – то достаточно вызвать filterNot().
val filteredText = string.filterNot { it.isDigit() }
replace()/replaceRange()
Для замены отдельных символов или строк используется функция replace(). Заменим отдельные символы в строке.
val string = "Кит Кишка"
val result = string.replace(
'и', // old char
'о', // new char
true // ignore case Boolean = false
)
textView.text = result // Кот Кошка
Можно менять подстроки.
val result = string.replace(
"Собака", // old value
"Кот", // new value
true // ignore case
)
textView.text = result // Кот - друг человека
Вариант replace() с регулярным выражением. Создадим функцию перевода строки на “драконий” язык. В результате будет создана новая строка с нужными символами.
private fun toDragonSpeak(phrase: String) =
phrase.replace(Regex("[aeiou]")) {
when (it.value) {
"a" -> "4"
"e" -> "3"
"i" -> "1"
"o" -> "0"
"u" -> "|_|"
else -> it.value
}
}
println(toDragonSpeak("Kitten")) // K1tt3n
Можно заменять подстроки через replaceRange(), указывая нужный диапазон. Существуют две версии этого способа.
val string = "Тра-та-та, тра-та-та, мы везём с собой ежа"
// The end index of the range is included
// in the part to be replaced.
val result = string.replaceRange(
39..40, // range
"кот" // replacement
)
textView.append(result)
val result2 = string.replaceRange(
39, // start index
41, // end index
"кот" // replacement
)
textView.append("n")
textView.append(result2)
Конвертируем строку в дату
import java.time.LocalDate
var parsedDate = LocalDate.parse("2020-07-27")
println(parsedDate)
Есть также вариант с использованием DateTimeFormatter.
import java.time.LocalDate
import java.time.format.DateTimeFormatter
var parsedDate = LocalDate.parse("Wednesday, July 27, 2020", DateTimeFormatter.ofPattern("EEEE, MMMM dd, yyyy"))
println("Wednesday, July 27, 2020 : " + parsedDate)
parsedDate = LocalDate.parse("July 27, 2020", DateTimeFormatter.ofPattern("MMMM dd, yyyy"))
println("July 27, 2020 : " + parsedDate)
parsedDate = LocalDate.parse("14/02/2020", DateTimeFormatter.ofPattern("dd/MM/yyyy"))
println("14/02/2020 : "+parsedDate)
parsedDate = LocalDate.parse("27 July,2019", DateTimeFormatter.ofPattern("dd MMMM,yyyy"))
println("27 July,2019 : " + parsedDate)
parsedDate = LocalDate.parse("11th April,2012", DateTimeFormatter.ofPattern("dd'th' MMMM,yyyy"))
println("11th April,2012 : " + parsedDate)
parsedDate = LocalDate.parse("27 Feb, 2001", DateTimeFormatter.ofPattern("dd MMM, yyyy"))
println("27 Feb, 2001 : " + parsedDate)
StringBuilder
У класса StringBuilder в Kotlin есть отдельная функция buildString(), которая поможет сократить количество кода для получения строки.
fun printAlphabet() = buildString {
for (letter in 'A'..'Z')
append(letter)
}
Дополнительные материалы
Упражнения для строк
Реклама
The Kotlin String class has an indexOf() method that allows developers to the position of a character or set of characters within a string. Such an operation is especially useful in situations where you may need to break a string into a substring or divide a string into different parts. Let’s go over the indexOf() method with a few examples.
indexOf
indexOf(Char)
The indexOf(Char) method is used to search for a single character within a string. It will return the index where the character was first found or -1 if the string doesn’t contain such a character.
val paragraph = "I am Sam.n" + "Sam I am.n" + "That Sam-I-am!n" + "That Sam-I-am!n" + "I do not liken" + "That Sam-I-am!n" + "Do you liken" + "Green eggs and ham?n" + "I do not like them,n" + "Sam-I-Amn" + "I do not liken" + "Green eggs and ham.n" //Index of letter a => 2 println("Index of letter a => " + paragraph.indexOf('a'))
The letter ‘a’ is the 3rd character in the example string. Since computers count starting at 0, the result is 2. This method also has an optional argument that allows it to ignore case.
indexOf(String)
If we want to find where a certain substring begins, we use the indexOf(String) method. It works just like its Char counterpart.
//Index of 'Green eggs and ham' => 91 println("Index of 'Green eggs and ham' => " + paragraph.indexOf("Green eggs and ham"))
The substring “Green eggs and ham” is found at position 91. Once again, this method returns -1 if the search string isn’t found. We can also use the ignoreCase optional argument when we do not care about case sensitivity.
indexOf(Char, Int), indexOf(String, Int)
The indexOf method has an optional startIndex parameter that takes an int value. By default, startIndex is 0, which is why indexOf starts at the beginning of the string. If we want to start looking in the middle of the string, we need to pass a value to startIndex. Let’s look at an example of where we can find all occurrences of the letter ‘I’.
var fromIndex = 0 while(paragraph.indexOf('I', fromIndex) > -1){ fromIndex = paragraph.indexOf("I", fromIndex) println("Found at => " + fromIndex) fromIndex++ }
Output
Found at => 0 Found at => 14 Found at => 29 Found at => 44 Found at => 50 Found at => 73 Found at => 111 Found at => 135 Found at => 140
The code tracks each index with a fromIndex variable. We enter into a while loop that continues until indexOf returns -1. With each iteration of the loop, we update fromIndex using indexOf() and pass in the old value of fromIndex. That causes the search to keep moving forward. After we print the index, we need to increment fromIndex by 1 because indexOf is inclusive. Should we fail to increment fromIndex, we will enter into an infinite loop because indexOf will continue to return the same value.
lastIndexOf
Strings also have a lastIndexOf() method that is a cousin to the indexOf() method. It takes the same arguments as indexOf(), but rather than returning the first occurence of the search character or string, it returns the last occurence instead.
//Last index of 'eggs' => 160 println("Last index of 'eggs' => " + paragraph.lastIndexOf("eggs"))
startsWith(), endsWith()
The startsWith() and endsWith() methods are convience methods that are used to check if a string starts or ends with a supplied prefixString. It also has an optional offset parameter that allows for searching in the middle of the string.
//paragraph starts with 'I am Sam' => true println("paragraph starts with 'I am Sam' => " + paragraph.startsWith("I am Sam")) //paragraph ends with 'Green eggs and ham. => true println("paragraph ends with 'Green eggs and ham. => " + paragraph.endsWith("Green eggs and ham.n"))
Putting it Together
Here is an example program followed by the output.
fun main(args : Array<String>){ val paragraph = "I am Sam.n" + "Sam I am.n" + "That Sam-I-am!n" + "That Sam-I-am!n" + "I do not liken" + "That Sam-I-am!n" + "Do you liken" + "Green eggs and ham?n" + "I do not like them,n" + "Sam-I-Amn" + "I do not liken" + "Green eggs and ham.n" println("Index of letter a => " + paragraph.indexOf('a')) println("Index of 'Green eggs and ham' => " + paragraph.indexOf("Green eggs and ham")) println("Finding all occurrences of 'I'...") var fromIndex = 0 while(paragraph.indexOf('I', fromIndex) > -1){ fromIndex = paragraph.indexOf("I", fromIndex) println("Found at => " + fromIndex) fromIndex++ } println("Last index of 'eggs' => " + paragraph.lastIndexOf("eggs")) println("paragraph starts with 'I am Sam' => " + paragraph.startsWith("I am Sam")) println("paragraph ends with 'Green eggs and ham. => " + paragraph.endsWith("Green eggs and ham.n")) }
Output
Index of letter a => 2 Index of 'Green eggs and ham' => 91 Finding all occurrences of 'I'... Found at => 0 Found at => 14 Found at => 29 Found at => 44 Found at => 50 Found at => 73 Found at => 111 Found at => 135 Found at => 140 Last index of 'eggs' => 160 paragraph starts with 'I am Sam' => true paragraph ends with 'Green eggs and ham. => true