Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² C#: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π² C#: созданиС строк, Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ строк, использованиС рСгулярных ΠΈ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² строках ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. БСгодня ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с этой Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈ довольно интСрСсной Ρ‚Π΅ΠΌΠΎΠΉ ΠΈ рассмотрим основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π² C#.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π² C#

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ класса System.String Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ раскрываСтся Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, основными ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

Рассмотрим прСдставлСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк Π² C#

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° являСтся Ρ†Π΅Π»ΠΎΠ΅ число Int32. Π­Ρ‚ΠΎ число ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ CompareΠ§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚
МСньшС нуляstrA ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ strB Π² порядкС сортировки (стока strA мСньшС строки strB ).
ΠΡƒΠ»ΡŒstrA Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² порядкС сортировки, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ strB (строки Ρ€Π°Π²Π½Ρ‹)
Π‘ΠΎΠ»ΡŒΡˆΠ΅ нуляstrA слСдуСт Π·Π° strB Π² порядкС сортировки (стока strA большС строки strB ).

Π’Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ строки Ρ€Π°Π²Π½Ρ‹.

ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свои настройки сравнСния строк, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Compare :

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Compare ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для сравнСния строк с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ вСрсии ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ строки ΠΈ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, воспользовавшись Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ способом:

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк Π² C# Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° вхоТдСния подстроки Π² строку Π² C#

ΠœΠ΅Ρ‚ΠΎΠ΄ Contains провСряСт, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ заданная подстрока Π² строку. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ статичСский, поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ОбъСдинСниС строк Π² C# (конкатСнация строк)

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈ массивы строк:

ОбъСдинСниС строк с использованиСм раздСлитСля Π² C#

Для ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² консоли ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡƒΡŽ строку:

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк Π² C#

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ:

Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² консоли:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Copy для создания ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ строки:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° совпадСния строк Π² C#

Достаточно часто ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со строками приходится ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ подстроки Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Для выполнСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ совпадСния строк ΠΈ подстрок Π² C# ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ двумя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк Π² C#

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка:

Поиск Π² строках C#

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ символа ΠΈΠ»ΠΈ подстроки Π² строку. НапримСр,

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π² консоли:

ИндСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа искомой подстроки 18

БоотвСтствСнно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ послСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ символа ΠΈΠ»ΠΈ подстроки Π² строку, достаточно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ:

Вставка подстроки Π² строку C#

Для вставки ΠΎΠ΄Π½ΠΎΠΉ строки Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π² C# ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Insert :

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ вставляСт Π² строку, начиная с индСкса startIndex подстроку value ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр строки. НапримСр,

Π—Π°ΠΌΠ΅Π½Π° символов ΠΈ подстрок Π² строках C#

Для Π·Π°ΠΌΠ΅Π½Ρ‹ символов ΠΈ подстрок Π² строках C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Replace:

НапримСр, Π·Π°ΠΌΠ΅Π½ΠΈΠΌ всС символы o с строкС Π½Π° символы А :

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строк Π½Π° подстроки Π² C#

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строк Π½Π° подстроки Π² C# Ρ‚Π°ΠΊΠΆΠ΅ являСтся достаточно частой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Для этого ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Split

Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ Split ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько символов ( Char ), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² качСствС раздСлитСля, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив строк. Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Split Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

Π—Π΄Π΅ΡΡŒ Π² качСствС Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²Π° символа β€” ΠΏΡ€ΠΎΠ±Π΅Π» ΠΈ Π·Π°ΠΏΡΡ‚ΡƒΡŽ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² консоли:

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ подстрок ΠΈΠ· строки Π² C#

Для извлСчСния подстрок ΠΈΠ· строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Substring :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° прСдставлСн Π½ΠΈΠΆΠ΅:

ИзмСнСниС рСгистра строк Π² C#

Для измСнСния рСгистра символов Π² строкС Π² C# ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ двумя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

ΠžΠ±Ρ€Π΅Π·ΠΊΠ° строк Π² C#

Иногда трСбуСтся ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ Π² строкС ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… символов Π² Π½Π°Ρ‡Π°Π»Π΅, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅. Β«Π›ΠΈΡˆΠ½ΠΈΠΌΠΈΒ» ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅Π»Ρ‹, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ символы. Для ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ строки Π² C# ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Trim* :

Π˜Ρ‚ΠΎΠ³ΠΎ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π² C#. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π° со строками Π½Π΅ ограничиваСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ рассмотрСнными Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ, для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°ΠΌ этого Π±ΡƒΠ΄Π΅Ρ‚ достаточно. Π’ дальнСйшСм ΠΌΡ‹ рассмотрим Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ вопросы ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ строк, использованиС интСрполяции строк ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ подстрок ΠΈΠ· строки

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ извлСчСния частСй строки.

ΠœΠ΅Ρ‚ΠΎΠ΄ String.Split

String.Split прСдоставляСт нСсколько ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ строку Π½Π° Π³Ρ€ΡƒΠΏΠΏΡƒ подстрок, основанных Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… символах-раздСлитСлях. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ число подстрок Π² ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΎΠ±Ρ€Π΅Π·Π°Π² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² подстроках ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ² пустыС подстроки.

РСгулярныС выраТСния

Если строка соотвСтствуСт фиксированному ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для извлСчСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΅Π΅ элСмСнтов. НапримСр, Ссли строки ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΡƒ «Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½ΠΎΠΌΠ΅Ρ€«, Ρ‚ΠΎΠ³Π΄Π° для извлСчСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ элСмСнтов строки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π¨Π°Π±Π»ΠΎΠ½ рСгулярного выраТСния (\d+)\s+([-+*/])\s+(\d+) опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для извлСчСния подстрок ΠΈΠ· строки Π½Π° основС шаблона, Π° Π½Π΅ фиксированного Π½Π°Π±ΠΎΡ€Π° символов. Π­Ρ‚ΠΎ распространСнный сцСнарий, Ссли происходит ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… условий:

Один ΠΈΠ»ΠΈ нСсколько символов-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ Π½Π΅ всСгда слуТат раздСлитСлями Π² экзСмплярС String.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ количСство символов-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ измСняСмыми ΠΈΠ»ΠΈ нСизвСстными.

НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ Split нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для раздСлСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ число символов \n (новая строка) являСтся измСняСмым ΠΈ ΠΎΠ½ΠΈ Π½Π΅ всСгда ΡΠ²Π»ΡΡŽΡ‚ΡΡ раздСлитСлями.

РСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ эту строку, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Π¨Π°Π±Π»ΠΎΠ½ рСгулярного выраТСния \[([^\[\]]+)\] опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ШаблонОписаниС
\[Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобой.
([^\[\]]+)Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с Π»ΡŽΠ±Ρ‹ΠΌ символом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ являСтся ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ€Π°Π·. Π­Ρ‚ΠΎ пСрвая Π³Ρ€ΡƒΠΏΠΏΠ° записи.
\]Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой.

ΠœΠ΅Ρ‚ΠΎΠ΄ Regex.Split практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ String.Split, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ раздСляСт строку Π½Π° основС шаблона рСгулярного выраТСния, Π° Π½Π΅ фиксированной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Regex.Split ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для раздСлСния строки, которая содСрТит подстроки, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сочСтаний дСфисов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… символов.

Π¨Π°Π±Π»ΠΎΠ½ рСгулярного выраТСния \s-\s?[+*]?\s?-\s опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ШаблонОписаниС
\s-Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт дСфис.
\s?Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅ΠΌ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈΠΌ символом ΠΏΡ€ΠΎΠ±Π΅Π»Π°.
[+*]?Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅ΠΌ ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅ появлСниС символа + ΠΈΠ»ΠΈ *.
\s?Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅ΠΌ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈΠΌ символом ΠΏΡ€ΠΎΠ±Π΅Π»Π°.
-\sΠ‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ с дСфисом, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΏΡ€ΠΎΠ±Π΅Π».

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ String.IndexOf ΠΈ String.Substring

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ всС подстроки Π² строкС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сравнСния строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ индСкс Π½Π°Ρ‡Π°Π»Π° сопоставлСния. Π—Π°Ρ‚Π΅ΠΌ для извлСчСния Π½ΡƒΠΆΠ½Ρ‹Ρ… подстрок ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Substring. К ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ сравнСния строк ΠΌΠΎΠΆΠ½ΠΎ отнСсти:

IndexOf, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ отсчитываСмый ΠΎΡ‚ нуля индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ появлСния символа ΠΈΠ»ΠΈ строки Π² экзСмплярС строки.

IndexOfAny, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ отсчитываСмый ΠΎΡ‚ нуля индСкс Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ экзСмплярС строки ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ появлСния любого символа Π² массивС символов.

LastIndexOf, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ отсчитываСмый ΠΎΡ‚ нуля индСкс послСднСго появлСния символа ΠΈΠ»ΠΈ строки Π² экзСмплярС строки.

LastIndexOfAny, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ отсчитываСмый ΠΎΡ‚ нуля индСкс Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ экзСмплярС строки послСднСго вхоТдСния любого символа Π² массивС символов.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ IndexOf ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска Ρ‚ΠΎΡ‡Π΅ΠΊ Π² строкС. ПослС Ρ‡Π΅Π³ΠΎ Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Substring для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² языкС C++ (класс string)

Π’ языкС C++ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π΅ΡΡ‚ΡŒ класс string, для использования ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» string.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌ значСния:

string S1, S2 = «Hello»;

Π‘Ρ‚Ρ€ΠΎΠΊΠ° S1 Π±ΡƒΠ΄Π΅Ρ‚ пустой, строка S2 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 5 символов.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² языкС C++ ΠΌΠΎΠ³ΡƒΡ‚

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ строк

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ явно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

НСявно конструктор вызываСтся ΠΏΡ€ΠΈ объявлСнии строки с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НапримСр, Ρ‚Π°ΠΊ:

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ конструкторах для строк Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ здСсь.

Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ строк

Π‘Ρ‚Ρ€ΠΎΠΊΠ° выводится Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ числовыС значСния:

cout >» для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° cin:

МоТно ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ строки Π΄ΠΎ появлСния символа ΠΊΠΎΠ½Ρ†Π° строки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getline. Π‘Π°ΠΌ символ ΠΊΠΎΠ½Ρ†Π° строки считываСтся ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π½ΠΎ ΠΊ строкС Π½Π΅ добавляСтся:

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ resize.

clear

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ clear.

empty

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ empty.

push_back

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ push_back.

append

ДобавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки нСсколько символов, Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки. Π˜ΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ способов Π²Ρ‹Π·ΠΎΠ²Π°.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ append.

erase

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ erase.

insert

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ insert.

substr

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ substr.

replace

ЗамСняСт Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ строки Π½Π° нСсколько Ρ€Π°Π²Π½Ρ‹Ρ… символов, Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ способам Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° append, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° числа: pos ΠΈ count. Из Π΄Π°Π½Π½ΠΎΠΉ строки удаляСтся count символов, начиная с символа pos, ΠΈ Π½Π° ΠΈΡ… мСсто Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ символы.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ replace.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ find.

rfind

Π˜Ρ‰Π΅Ρ‚ послСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ подстроки («ΠΏΡ€Π°Π²Ρ‹ΠΉ» поиск). Бпособы Π²Ρ‹Π·ΠΎΠ²Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ способам Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° find.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ rfind.

find_first_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ появлСниС любого ΠΈΠ· символов Π΄Π°Π½Π½ΠΎΠΉ строки str. ВозвращаСтся Π½ΠΎΠΌΠ΅Ρ€ этого символа ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ string::npos.

find_last_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС послСднСС появлСниС любого ΠΈΠ· символов Π΄Π°Π½Π½ΠΎΠΉ строки str. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ find_first_of.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ find_last_of.

find_first_not_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ появлСниС символа, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ символов строки str. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ find_first_of.

find_last_not_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС послСднСС появлСниС символа, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ символов строки str. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ find_first_of.

c_str

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся символы строки, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° char*. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ C-строку ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² функциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄ C-строку.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со строками Π² C#: Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

БСгодня Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ строках Π² языкС C#. ΠœΡ‹ рассмотрим основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со строчками, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, разбиСния ΠΈ склСйку строк (c# string split). К ΠΊΠΎΠ½Ρ†Ρƒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΎΠ²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ всСми Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ инструмСнтами ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строк Π² C#.

ВступлСниС

Код Π²Ρ‹Π²ΠΎΠ΄Π° Π² консоли ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкста:

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ строки ΠΈΠ· массива

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… string являСтся нСизмСняСмым. Π‘ΠΎΠ·Π΄Π°Π² ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· строку, Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ содСрТимоС. ΠŸΡ€ΠΈ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ string являСтся ссылочным β€” ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ мСняСтС содСрТимоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, мСняСтся ссылка Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π³Π΄Π΅ ΠΎΠ½ΠΎ содСрТится. Π­Ρ‚ΠΎ Π½Π΅ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ β€” впослСдствии сборщик мусора ΡƒΠ΄Π°Π»ΠΈΡ‚ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ строки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ измСнСния строки:

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ строк

РСдактируя строковыС Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΡ‹ часто ΠΏΡ€ΠΈΠ±Π΅Π³Π°Π΅ΠΌ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ β€” ΠΊΠΎΠ³Π΄Π° строка добавляСтся Π² ΠΊΠΎΠ½Π΅Ρ† Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки.

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

ДСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ логичСского ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° слоТСния:

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Concat :

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ объСдинСния строк β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Join :

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строки Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· простого символьного массива:

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ‚ΠΎΡ€Ρ‹

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ строка являСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ символов, Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· элСмСнтов. Для этого примСняСтся индСксатор, число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ считаСтся, ΠΊΠ°ΠΊ ΠΈ Π² массивС β€” с нуля:

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

ИзмСнСниС рСгистра

Π’ процСссС программирования ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ рСгистр тСкстового сообщСния. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ссли Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ голосовой ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ, сообщСния, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Π»ΠΎΠ³ΠΈΠΊΡƒ вашСго ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° рСгистр β€” Π² этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄:

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строк, подстроки (c# string split)

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ строк: ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ (split c# ΠΏΡ€ΠΈΠΌΠ΅Ρ€)

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ разбиСния строк Π² C#. ΠœΠ΅Ρ‚ΠΎΠ΄ Substring Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для раздСлСния строк. Он Π»ΠΈΠ±ΠΎ просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ тСкст с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ символа, Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ это Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ:

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

Π’ этом случаС Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ today! (с Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°ΠΊΠΎΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Split строковыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² массив подстрок:

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

ΠžΠ±Ρ€Π΅Π·ΠΊΠ° строк

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Remove() удаляСтся Π³Ρ€ΡƒΠΏΠΏΠ° символов Π² строковых Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° указываСтся Π½ΠΎΠΌΠ΅Ρ€ символа, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Вставка тСкста

НаиболСС ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ вставки подстроки β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Insert() . Π’ Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… слСдуСт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ символа, Π½Π° мСсто ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° вставка.

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Compare() :

Когда Π² Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ рСгистра, Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ CompareTo ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ true :

Как Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ подстроку Π² c

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° C#

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ C# прСдставлСны всС Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со строкой. Они Π²ΠΏΠΎΠ»Π½Π΅ понятны Π΄Π°ΠΆΠ΅ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². НадССмся, Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ! Для закрСплСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со строковыми ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

String. Substring ΠœΠ΅Ρ‚ΠΎΠ΄

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

НСкоторыС свСдСния относятся ΠΊ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎ выпуска ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ внСсСны сущСствСнныС измСнСния. ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ Π½Π΅ прСдоставляСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, явных ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌΡ‹Ρ…, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… здСсь свСдСний.

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ подстроку ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра.

Π­Ρ‚ΠΎΡ‚ Ρ‡Π»Π΅Π½ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½. Для получСния ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄Π°Π½Π½ΠΎΠΌ Ρ‡Π»Π΅Π½Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ синтаксис, использованиС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ имя Π² спискС ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ.

ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ подстроку ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° начинаСтся Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ символов ΠΈ продолТаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ подстроку ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° начинаСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π½Π°ΠΊΠ° ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

Substring(Int32)

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ подстроку ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° начинаСтся Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ символов ΠΈ продолТаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠžΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌΠ°Ρ ΠΎΡ‚ нуля позиция ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° подстроки Π² Π΄Π°Π½Π½ΠΎΠΌ экзСмплярС.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π‘Ρ‚Ρ€ΠΎΠΊΠ°, эквивалСнтная подстрокС, которая начинаСтся с startIndex Π² Π΄Π°Π½Π½ΠΎΠΌ экзСмплярС, ΠΈΠ»ΠΈ Empty, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ startIndex Ρ€Π°Π²Π½ΠΎ Π΄Π»ΠΈΠ½Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

startIndex ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС нуля ΠΈΠ»ΠΈ большС Π΄Π»ΠΈΠ½Ρ‹ этого экзСмпляра.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ подстроки ΠΈΠ· строки.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Substring для раздСлСния ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… символом равСнства («=»).

IndexOfΠœΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π½Π°ΠΊΠ° равСнства Π² строкС. Π’Ρ‹Π·ΠΎΠ² Substring(Int32, Int32) ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ имя ΠΊΠ»ΡŽΡ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ начинаСтся с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π² строкС ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ для количСства символов, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ IndexOf ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Substring(Int32)Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, присвоСнноС ΠΊΠ»ΡŽΡ‡Ρƒ. Он начинаСтся с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа Π·Π° Π·Π½Π°ΠΊΠΎΠΌ равСнства ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ вызываСтся Substring(Int32) для извлСчСния подстроки ΠΈΠ· строки, которая начинаСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа ΠΈ заканчиваСтся Π² ΠΊΠΎΠ½Ρ†Π΅ строки. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа начинаСтся с нуля; Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Π² строкС находится ΠΏΠΎ индСксу 0, Π° Π½Π΅ ΠΊ индСксу 1. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ подстроку, которая начинаСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа ΠΈ заканчиваСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Substring(Int32, Int32) ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ измСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра. ВмСсто этого ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ строку, которая начинаСтся с startIndex ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строкС.

Если Ρ€Π°Π²Π΅Π½ startIndex Π½ΡƒΠ»ΡŽ, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ строку Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ ΠΊ

Substring(Int32, Int32)

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ подстроку ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° начинаСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π½Π°ΠΊΠ° ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠžΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌΠ°Ρ ΠΎΡ‚ нуля позиция ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° подстроки Π² Π΄Π°Π½Π½ΠΎΠΌ экзСмплярС.

Число символов Π² подстрокС.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

startIndex плюс length ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ экзСмпляра.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° startIndex ΠΈΠ»ΠΈ length мСньшС нуля.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ простой Π²Ρ‹Π·ΠΎΠ² Substring(Int32, Int32) ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π΄Π²Π° символа ΠΈΠ· строки, начиная с ΡˆΠ΅ΡΡ‚ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа (Ρ‚. Π΅. ΠΏΠΎ индСксу 5).

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Substring(Int32, Int32) Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Ρ… случаях для изоляции подстрок Π² строкС. Π’ Π΄Π²ΡƒΡ… случаях подстроки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² сравнСниях, Π° Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ нСдопустимыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

Он пытаСтся ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΎΠ΄ΠΈΠ½ символ, начиная с Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² строкС. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π½Π΅Ρ‚ символа, Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° создаСт ArgumentOutOfRangeException ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Substring для раздСлСния ΠΏΠ°Ρ€ «ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅», Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… символом равСнства («=»).

IndexOfΠœΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π½Π°ΠΊΠ° равСнства Π² строкС. Π’Ρ‹Π·ΠΎΠ² Substring(Int32, Int32) ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ имя ΠΊΠ»ΡŽΡ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ начинаСтся с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π² строкС ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ для количСства символов, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ IndexOf ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Substring(Int32)Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, присвоСнноС ΠΊΠ»ΡŽΡ‡Ρƒ. Он начинаСтся с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа Π·Π° Π·Π½Π°ΠΊΠΎΠΌ равСнства ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ вызываСтся Substring(Int32, Int32) для извлСчСния подстроки ΠΈΠ· строки, которая начинаСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа ΠΈ заканчиваСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа начинаСтся с нуля; Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Π² строкС находится ΠΏΠΎ индСксу 0, Π° Π½Π΅ ΠΊ индСксу 1. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ подстроку, которая начинаСтся с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа ΠΈ продолТаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Substring(Int32) ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ измСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра. ВмСсто этого ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ строку с length символами, начиная с startIndex полоТСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строкС.

Если подстрока Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ startIndex Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ IndexOf ΠΈΠ»ΠΈ, LastIndexOf Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ символа ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов. Π—Π°Ρ‚Π΅ΠΌ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² индСкс Π² строкС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Если startIndex Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ ΠΈ Ρ€Π°Π²Π½ΠΎ Π΄Π»ΠΈΠ½Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ строку Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *