Π Π°Π±ΠΎΡ‚Π° с тСкстовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π±ΠΎΡ€Π° строк, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… систСм, ΠΈΠ· ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ символа β€” это базовая опСрация, которая часто становится ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² слоТном Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π’ языкС 1Π‘ сущСствуСт нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ этой Π·Π°Π΄Π°Ρ‡ΠΈ. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ трСбуСтся: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ ΠΏΠΎ индСксу, Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ послСдний символ нСизвСстной ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ строки. ПониманиС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ функциями Π‘Ρ€Π΅Π΄, Π›Π΅Π², ΠŸΡ€Π°Π² ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π‘ΠΈΠΌΠ²ΠΎΠ» критичСски Π²Π°ΠΆΠ½ΠΎ для написания чистого ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам выполнСния, особСнно Ссли исходная строка окаТСтся пустой ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΎΡ‡Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ синтаксис, Π½ΡŽΠ°Π½ΡΡ‹ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Π»ΠΎΠ²ΡƒΡˆΠ΅ΠΊ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с тСкстом.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ€Π΅Π΄

Π‘Π°ΠΌΡ‹ΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для получСния части строки являСтся встроСнная функция Π‘Ρ€Π΅Π΄. Она позволяСт Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста, начиная с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Если ваша Ρ†Π΅Π»ΡŒ β€” Π²Π·ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ символ, достаточно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² качСствС Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. НумСрация символов Π² 1Π‘ начинаСтся с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Π΅Ρ‘ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, Π³Π΄Π΅ индСксация часто начинаСтся с нуля.

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ извлСчСния Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ· слова. Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ пСрСмСнная, содСрТащая Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Нам Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ Π±ΡƒΠΊΠ²Ρƒ. Код Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ ΠΈ понятно Π΄Π°ΠΆΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° ="Π‘Ρ‡Π΅Ρ‚Π€Π°ΠΊΡ‚ΡƒΡ€Π°";

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ символ (Π±ΡƒΠΊΠ²Ρƒ"Π΅")

НуТныйБимвол = Π‘Ρ€Π΅Π΄(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, 3, 1);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(НуТныйБимвол);

Однако стоит Π±Ρ‹Ρ‚ΡŒ остороТным ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с динамичСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, которая ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки, функция Π‘Ρ€Π΅Π΄ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку, Π° Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ сбоСв, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Ссли Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ символа ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ для Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

πŸ’‘

Ѐункция Π‘Ρ€Π΅Π΄ рСгистрозависима Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² смыслС содСрТимого, Π½ΠΎ сам синтаксис написания названия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π‘Ρ€Π΅Π΄, Π‘Π Π•Π”, срСд) Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния Π² языкС 1Π‘.

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π‘Ρ‚Ρ€ΠΎΠΊΠ°

Π’ соврСмСнных вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 ΠΈ Π²Ρ‹ΡˆΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π’ΠΈΠΏ Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ собствСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто выглядят Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎ, Ρ‡Π΅ΠΌ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для получСния Π·Π½Π°ΠΊΠ° ΠΏΠΎ Π΅Π³ΠΎ порядковому Π½ΠΎΠΌΠ΅Ρ€Ρƒ.

Бинтаксис Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° отличаСтся ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ обращаСмся ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, особСнно Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… модулях с мноТСством ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ВСкст ="Аналитика";

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ пятый символ (Π±ΡƒΠΊΠ²Ρƒ"ΠΈ")

Π—Π½Π°ΠΊ = ВСкст.Π‘ΠΈΠΌΠ²ΠΎΠ»(5);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π—Π½Π°ΠΊ);

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ€Π΅Π΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ индСкс большС Π΄Π»ΠΈΠ½Ρ‹ строки, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² зависимости ΠΎΡ‚ контСкста ΠΈ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, поэтому явная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· свойство Π”Π»ΠΈΠ½Π° остаСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.

  • πŸ”Ή ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ соврСмСнным.
  • πŸ”Ή Ѐункция Π‘Ρ€Π΅Π΄ обСспСчиваСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со старыми конфигурациями.
  • πŸ”Ή Оба способа ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ (UTF-8).
πŸ“Š Какой способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π‘Ρ€Π΅Π΄, Π›Π΅Π²)
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΠΈΠΌΠ²ΠΎΠ»)
ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²
РСгулярныС выраТСния

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго символа

Частными случаями Π·Π°Π΄Π°Ρ‡ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ самого послСднСго Π·Π½Π°ΠΊΠ° строки. Для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π›Π΅Π², ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ Π΄Π»ΠΈΠ½Ρƒ 1. Π­Ρ‚ΠΎ классичСский ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Π²ΠΎ всСх вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Для послСднСго символа ситуация Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° строки ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСизвСстна Π·Π°Ρ€Π°Π½Π΅Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π·ΡΡ‚ΡŒ послСдний символ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° ΠΈΠ»ΠΈ свойства Π”Π»ΠΈΠ½Π°, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ для получСния индСкса. Если строка пустая, такая опСрация ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, поэтому ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°.

ЀайлИмя ="report_2026.xml";

Если Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ЀайлИмя) > 0 Π’ΠΎΠ³Π΄Π°

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ = ΠŸΡ€Π°Π²(ЀайлИмя, 1);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ПослСдний символ:" + Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚Ρ€ΡŽΠΊ для получСния послСднСго символа Π±Π΅Π· явного вычислСния Π΄Π»ΠΈΠ½Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… контСкстах ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ стандартный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с ΠŸΡ€Π°Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 1) остаСтся самым Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΈ понятным для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ послСднСму символу строки Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° пустоту. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ символ ΠΈΠ· пустой строки β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых частых ΠΏΡ€ΠΈΡ‡ΠΈΠ½ появлСния ошибок Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ рСгистрации 1Π‘.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… символов

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², строки часто содСрТат лишниС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅. Если ваша Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ"Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ" символ, простоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу 1 ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π». Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция Π‘ΠΎΠΊΡ€Π› (ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ слСва) ΠΈΠ»ΠΈ Π‘ΠΎΠΊΡ€ΠŸ (ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ справа).

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ позволяСт ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ удаляСм лишниС символы, Π° Π·Π°Ρ‚Π΅ΠΌ Π±Π΅Ρ€Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ парсингС тСкстовых ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ², Π³Π΄Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΎ.

  • πŸ”Έ Ѐункция Π‘ΠΎΠΊΡ€Π› удаляСт всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅ строки.
  • πŸ”Έ Ѐункция Π‘ΠΎΠΊΡ€ΠŸ удаляСт ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² ΠΊΠΎΠ½Ρ†Π΅ строки.
  • πŸ”Έ Ѐункция Π‘ΠΎΠΊΡ€ удаляСт ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ с ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠ½Ρ†ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° дСмонстрируСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ прямым ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ послС очистки. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π΅Π», Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ. Π’Π°ΠΊΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ поиска ΠΈΠ»ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ГрязнаяБтрока =" Π’ΠΎΠ²Π°Ρ€";

// Ошибка: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉΠ‘ΠΈΠΌΠ²ΠΎΠ»1 = Π‘Ρ€Π΅Π΄(ГрязнаяБтрока, 1, 1);

// Π’Π΅Ρ€Π½ΠΎ: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ"Π’"

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉΠ‘ΠΈΠΌΠ²ΠΎΠ»2 = Π‘Ρ€Π΅Π΄(Π‘ΠΎΠΊΡ€Π›(ГрязнаяБтрока), 1, 1);

Π Π°Π±ΠΎΡ‚Π° с табуляциСй ΠΈ пСрСносами строк

Если Π² строкС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ символы табуляции (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Π°Π±) ΠΈΠ»ΠΈ пСрСноса строки (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ), Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сокращСния ΠΈΡ… Π½Π΅ удалят. Для ΠΏΠΎΠ»Π½ΠΎΠΉ очистки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, замСняя эти символы Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

Π’ высоконагруТСнных систСмах, Π³Π΄Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк происходит Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΏΠΎ тысячам записСй, вопрос ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ»Π°Π½. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Π° Π½Π° ΠΌΠ°Π»Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ…, Π½ΠΎ становится сущСствСнной ΠΏΡ€ΠΈ массовых опСрациях. ВСсты ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ часто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‡ΡƒΡ‚ΡŒ быстрСС Π·Π° счСт мСньшСй Π½Π°ΠΊΠ»Π°Π΄Π½ΠΎΠΉ расходы Π½Π° созданиС контСкста ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, соврСмСнный компилятор 1Π‘ постоянно оптимизируСтся, ΠΈ Ρ€Π°Π·Ρ€Ρ‹Π² сокращаСтся. Π“Π»Π°Π²Π½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ скорости являСтся Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘Ρ€Π΅Π΄ ΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ», сколько минимизация Π»ΠΈΡˆΠ½ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π½ΠΈΠ΅ создания ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠœΠ΅Ρ‚ΠΎΠ΄ Бинтаксис Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Ѐункция Π‘Ρ€Π΅Π΄ Π‘Ρ€Π΅Π΄(Π‘Ρ‚Ρ€, 1, 1) ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ Высокая
ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π‘Ρ‚Ρ€.Π‘ΠΈΠΌΠ²ΠΎΠ»(1) БоврСмСнная БрСдняя
Ѐункция Π›Π΅Π² Π›Π΅Π²(Π‘Ρ‚Ρ€, 1) Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Π°Ρ Высокая
РСгулярныС выраТСния ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ¨Π°Π±Π»ΠΎΠ½Ρƒ БлоТная Низкая

Для стандартных Π·Π°Π΄Π°Ρ‡ бизнСса рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Π»ΡŽΠ±Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ старыС сСрвСры. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ±Π΅Ρ€Π΅Ρ‡ΡŒ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° соврСмСнных стандартов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

πŸ’‘

Π’ Ρ†ΠΈΠΊΠ»Π°Ρ… с большим количСством ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π‘Ρ€Π΅Π΄, Π›Π΅Π²), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ процСссора.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

Одной ΠΈΠ· самых распространСнных ошибок являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ символ ΠΈΠ· значСния Ρ‚ΠΈΠΏΠ° Null ΠΈΠ»ΠΈ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ 1Π‘ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ свойству ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния. ВсСгда провСряйтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ‚ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 1Π‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ старых тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² DOS), символы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях символ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ"кракозяброй", хотя тСхничСски ΠΎΠ½ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ Π²Π΅Ρ€Π½ΠΎ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Word Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ 1Π‘ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈ спСцсимволы. ВсСгда ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² ΠΊΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ синтаксичСских ошибок.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ"ИндСкс Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°". Π₯отя функция Π‘Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, возвращая пустоту, прямоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ массиву символов (Ссли Π±Ρ‹ Ρ‚Π°ΠΊΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ) ΠΈΠ»ΠΈ нСкоррСктная Π»ΠΎΠ³ΠΈΠΊΠ° вычислСния индСкса ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ для пошагового контроля Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

β˜‘οΈ Π§Π΅ΠΊ-лист бСзопасного извлСчСния символа

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ символ строки, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ всСгда лишний?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ€Π΅Π΄(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 2, 1). Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π½Π°Ρ‡Π°Π»Π°, Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ β€” количСство символов. Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всю строку Π±Π΅Π· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ€Π΅Π΄(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 2) Π±Π΅Π· Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символ Π² строкС Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ?

НСт, Ρ‚ΠΈΠΏ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² 1Π‘ являСтся нСизмСняСмым (immutable). Π§Ρ‚ΠΎΠ±Ρ‹"Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ" символ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку, собрав Π΅Ρ‘ ΠΈΠ· частСй: Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΎ символа + Π½ΠΎΠ²Ρ‹ΠΉ символ + Ρ‡Π°ΡΡ‚ΡŒ послС символа, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ функция, Ссли строка пустая?

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ€Π΅Π΄, Π›Π΅Π², ΠŸΡ€Π°Π² Π²Π΅Ρ€Π½ΡƒΡ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку (""). ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ повСсти сСбя ΠΈΠ½Π°Ρ‡Π΅ Π² зависимости ΠΎΡ‚ контСкста, поэтому явная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Если НС ΠŸΡƒΡΡ‚Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) Π’ΠΎΠ³Π΄Π° являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ стандартом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Как ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ†ΠΈΡ„Ρ€Ρƒ ΠΈΠ· строки смСшанного Ρ‚ΠΈΠΏΠ°?

Если строка содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Число(Π‘Ρ‚Ρ€ΠΎΠΊΠ°). Если Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ ΠΊΠ°ΠΊ символ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Для поиска ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ Π² тСкстС потрСбуСтся Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ рСгулярныС выраТСния.