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

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

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, особСнно Ссли ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° происходит Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ количСству записСй. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксис, Π½ΠΎ ΠΈ особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ со строками Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ΠœΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ простыС однострочныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‚Π°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для спСцифичСских случаСв.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для массового удалСния

Π‘Π°ΠΌΡ‹ΠΉ распространСнный ΠΈ простой способ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ символа Π²ΠΎ всСй строкС β€” это использованиС встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС occurrences (вхоТдСния) ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дСфиса Π² Π½ΠΎΠΌΠ΅Ρ€Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Π΅. Ѐункция замСняСт Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ подстроки Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ строку, Ρ‡Ρ‚ΠΎ фактичСски Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡ… ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ.

Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост: Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ строку, ΠΈΡΠΊΠΎΠΌΡƒΡŽ подстроку ΠΈ строку Π·Π°ΠΌΠ΅Π½Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ символ, Π² качСствС Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° пСрСдаСтся пустая строка "". Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ очистки Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΎΡ‚ скобок ΠΈ дСфисов.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅Π»Π΅Ρ„ΠΎΠ½ = "+7 (999) 123-45-67";

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅Π»Π΅Ρ„ΠΎΠ½, "(", "");

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ, ")", "");

ЧистыйВСлСфон = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ, "-", "");

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "+7 999 1234567"

Однако, Ссли ваша Ρ†Π΅Π»ΡŒ β€” ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ встрСчСнный символ, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ…ΠΈΡ‰Ρ€Π΅Π½ΠΈΠΉ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поиск ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ с функциями срСза. Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ частоС созданиС Π½ΠΎΠ²Ρ‹Ρ… строк Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ сборщик мусора, хотя для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° бизнСс-Π·Π°Π΄Π°Ρ‡ 1Π‘ это Π½Π΅ являСтся ΡƒΠ·ΠΊΠΈΠΌ мСстом.

πŸ’‘

Для удалСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π½Ρ‹Ρ… символов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π·Π½Π°ΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ Π½Π΅ΠΌΡƒ Π² Ρ†ΠΈΠΊΠ»Π΅, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ примСняя Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’Ρ‹Ρ€Π΅Π·Π°Π½ΠΈΠ΅ символа ΠΏΠΎ индСксу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ срСза

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

Алгоритм дСйствия прост: ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ Ρ‡Π°ΡΡ‚ΡŒ строки слСва ΠΎΡ‚ удаляСмого символа ΠΈ Ρ‡Π°ΡΡ‚ΡŒ строки справа ΠΎΡ‚ Π½Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΡƒΠ΅ΠΌ (склСиваСм) ΠΈΡ…. Ѐункция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство символов для ΠΏΡ€Π°Π²ΠΎΠΉ части. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² любой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π΄Π°ΠΆΠ΅ Π² самых старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

  • πŸ“ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ - 1) для получСния Π½Π°Ρ‡Π°Π»Π°.
  • βœ‚οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΡ€Π°Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) - ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ) для получСния хвоста.
  • πŸ”— Π‘Π»ΠΎΠΆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ +.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ индСксы Π² 1Π‘ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 1, Π° Π½Π΅ с 0, ΠΊΠ°ΠΊ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования (Java, C#, Python). ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ индСкс ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния.

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

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

Ѐункция Π‘ΠΎΠΊΡ€Π›ΠŸ (ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ слСва ΠΈ справа) являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованной. Она удаляСт всС ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы ΠΏΠΎ краям строки, Π½ΠΎ оставляСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ЀИО, Π³Π΄Π΅ ΠΏΡ€ΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ словами являСтся Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌ символом. Однако, Ссли Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки, придСтся снова ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

πŸ“Š Какая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со строками встрСчаСтся Ρ‡Π°Ρ‰Π΅ всСго?
Π›ΠΈΡˆΠ½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΠΎ краям
НСвСрная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°
БпСцсимволы ΠΈΠ· Excel
Π”Π»ΠΈΠ½Π½Ρ‹Π΅ строки ΠΎΠ±Ρ€Π΅Π·Π°ΡŽΡ‚ΡΡ

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

ВСкст = "Π’ΠΎΠ²Π°Ρ€" + Π‘ΠΈΠΌΠ²ΠΎΠ»(160) + "Артикул";

// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°

ΠžΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(ВСкст, Π‘ΠΈΠΌΠ²ΠΎΠ»(160), "");

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎ символах Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (Π‘ΠΈΠΌΠ²ΠΎΠ»(13)) ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (Π‘ΠΈΠΌΠ²ΠΎΠ»(10)). ΠŸΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² CSV ΠΈΠ»ΠΈ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ этих символов Π²Π½ΡƒΡ‚Ρ€ΠΈ поля ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ΡŒ структуру Ρ„Π°ΠΉΠ»Π°. Π˜Ρ… ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ этапом ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ экспортом.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° строки ΠΎΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… символов

ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-Ρ„ΠΎΡ€ΠΌΡ‹ Π² строку ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹Π΅ символы. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш, Π·Π½Π°ΠΊΠΈ мСньшС ΠΈΠ»ΠΈ большС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² XML ΠΈΠ»ΠΈ HTML. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… символов ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам парсинга ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ уязвимостям бСзопасности (XSS).

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

Π‘ΠΈΠΌΠ²ΠΎΠ» Код (Chr) ОписаниС РСкомСндация
ΠŸΡ€ΠΎΠ±Π΅Π» 32 ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π» Π‘ΠΎΠΊΡ€Π›ΠŸ ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ
НСразрывный ΠΏΡ€ΠΎΠ±Π΅Π» 160 Из Word/Web Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘ΠΈΠΌΠ²ΠΎΠ»(160))
Tab 9 Вабуляция Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»
LF 10 ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ экспортС CSV

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ»ΠΈ всС Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ· строки, оставив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа. Для этого потрСбуСтся Ρ†ΠΈΠΊΠ» с ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа строки ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠΎΠ΄Π‘ΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ΠΎ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†ΠΈΡ„Ρ€ (48-57) ΠΈΠ»ΠΈ Π±ΡƒΠΊΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° удалСния всСх Ρ†ΠΈΡ„Ρ€ ΠΈΠ· строки

Ѐункция Π£Π΄Π°Π»ΠΈΡ‚ΡŒΠ¦ΠΈΡ„Ρ€Ρ‹(Π‘Ρ‚Ρ€ΠΎΠΊΠ°)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = "";

Для i = 1 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π¦ΠΈΠΊΠ»

Π‘ΠΈΠΌΠ²ΠΎΠ» = Π‘Ρ€Π΅Π΄(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, i, 1);

Если НС Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ(Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ("0123456789", Π‘ΠΈΠΌΠ²ΠΎΠ», "")) Π’ΠΎΠ³Π΄Π°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ + Π‘ΠΈΠΌΠ²ΠΎΠ»;

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

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π Π°Π±ΠΎΡ‚Π° с раздСлитСлями ΠΈ массивами строк

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

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

  • πŸ“‹ Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ строку: Массив = Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ",", Π›ΠΎΠΆΡŒ).
  • πŸ—‘οΈ ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ пустыС элСмСнты ΠΈΠ»ΠΈ элСмСнты, содСрТащиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.
  • 🧡 Π‘ΠΎΠ±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ: НоваяБтрока = Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Массив, ",").

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ѐункция Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ появилась Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Если Π²Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ старыС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1Π‘ 7.7 ΠΈΠ»ΠΈ Ρ€Π°Π½Π½ΠΈΠ΅ вСрсии 8.1), придСтся ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ строку Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² Ρ†ΠΈΠΊΠ»Π΅.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ строковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² 1Π‘ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ любая опСрация измСнСния (Π·Π°ΠΌΠ΅Π½Π°, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅) создаСт Π² памяти Π½ΠΎΠ²ΡƒΡŽ копию строки. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ†ΠΈΠΊΠ»Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… процСссов сущСствуСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π‘ΡƒΡ„Π΅Ρ€Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ использованиС Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π° с Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ.

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

πŸ’‘

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк Π² Ρ†ΠΈΠΊΠ»Π΅ (Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘Ρ‚Ρ€ΠΎΠΊΠ° + Π§Π°ΡΡ‚ΡŒ). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ ΠΈΠ»ΠΈ массив с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ соСдинСниСм для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ….

Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, которая запускаСтся Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΈ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй, протСстируйтС Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Иногда Π·Π°ΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, использованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ внСшнюю ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ) ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Но Π² 95% случаСв стандартныС срСдства языка 1Π‘ Π²ΠΏΠΎΠ»Π½Π΅ достаточны ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹.

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

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

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний символ ΠΈΠ· строки Π² 1Π‘?

Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π›Π΅Π². ВычислитС Π΄Π»ΠΈΠ½Ρƒ строки Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°, Π²Ρ‹Ρ‡Ρ‚ΠΈΡ‚Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: НоваяБтрока = Π›Π΅Π²(БтараяБтрока, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(БтараяБтрока) - 1). ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ строка Π½Π΅ пустая, ΠΈΠ½Π°Ρ‡Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка.

МоТно Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ символ, Ссли я Π½Π΅ знаю Π΅Π³ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅?

Π”Π°, Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ΄ символа. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΈΠΌΠ²ΠΎΠ»(Код) для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ Π² Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠšΠΎΠ΄Ρ‹ символов ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII ΠΈΠ»ΠΈ Unicode. НапримСр, Π‘ΠΈΠΌΠ²ΠΎΠ»(10) создаст символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки.

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· строки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅?

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΎΠΊΡ€Π›ΠŸ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ краям. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, " ", ""). Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ Π½Π° пустоту, склСив ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ части строки.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ символа табуляции?

Π‘ΠΈΠΌΠ²ΠΎΠ» табуляции ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ΄ 9. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ нСсколько ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π½ΠΎ это ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘ΠΈΠΌΠ²ΠΎΠ»(9), "") для Π΅Π³ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ удалСния.

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ символы подряд (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "++" ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π² "+")?

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