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

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

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° строковых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ языкС запросов ΠΈ встроСнном языкС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ основным Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… для хранСния тСкста являСтся Π‘Ρ‚Ρ€ΠΎΠΊΠ°. Π­Ρ‚ΠΎ нСизмСняСмый (immutable) Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любая опСрация ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ создаСт Π½ΠΎΠ²ΡƒΡŽ копию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² памяти. ИмСнно этот Ρ„Π°ΠΊΡ‚ часто становится скрытой ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ падСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Ρ†ΠΈΠΊΠ»Π°Ρ….

Помимо ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ сущСствуСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ВСкстовыйДокумСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими объСмами тСкста, форматирования ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ. Однако для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ°. Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ контСксты: Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΠ»Π΅ΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ΄Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ явно ΠΈΠ»ΠΈ оставлСн Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π² соврСмСнных вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ рСкомСндуСтся. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ константы Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ строки, ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ. ПониманиС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с символами Unicode Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом.

πŸ’‘

ВсСгда явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΏΡ€ΠΈ объявлСнии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΌΠΎΠ³Π»Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° этапС компиляции модуля.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ манипуляции

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

Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых рСсурсоСмких ΠΏΡ€ΠΈ частом Π²Ρ‹Π·ΠΎΠ²Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° сканируСт всю строку ΠΈ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π·Π°ΠΌΠ΅Π½Ρƒ Π² Ρ†ΠΈΠΊΠ»Π΅, рассмотритС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, использованиС Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запроса.

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

  • πŸ” БтрНайти β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния подстроки, ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° для условной Π»ΠΎΠ³ΠΈΠΊΠΈ.
  • βœ‚οΈ Π‘Ρ‚Ρ€ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ β€” ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ строки ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ.
  • πŸ”„ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ β€” замСняСт всС вхоТдСния ΠΎΠ΄Π½ΠΎΠΉ подстроки Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ, создавая Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр.
  • πŸ“ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов, учитывая особСнности ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ.
ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ

Ѐункция создаСт ΠΏΠΎΠ»Π½ΡƒΡŽ копию строки Π΄Π°ΠΆΠ΅ Ссли Π·Π°ΠΌΠ΅Π½Π° Π½Π΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π½ΠΈ Ρ€Π°Π·Ρƒ. Π’ tight-loops (ΠΏΠ»ΠΎΡ‚Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°Ρ…) это ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сборщик мусора.

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

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

Π’ Ρ†ΠΈΠΊΠ»Π°Ρ…, Π³Π΄Π΅ происходит Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅ строки итСрация Π·Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, такая модСль Π²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΉ слоТности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° O(nΒ²). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ объСма Π΄Π°Π½Π½Ρ‹Ρ… Π² 2 Ρ€Π°Π·Π°, врСмя выполнСния ΠΌΠΎΠΆΠ΅Ρ‚ вырасти Π² 4 Ρ€Π°Π·Π°. Для построСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… тСкстовых Π±Π»ΠΎΠΊΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для формирования JSON ΠΈΠ»ΠΈ XML Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³ΡƒΠ±ΠΈΡ‚Π΅Π»Π΅Π½.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ сборкС большого тСкста Π² Ρ†ΠΈΠΊΠ»Π΅ (Π±ΠΎΠ»Π΅Π΅ 100-200 ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ) Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ слоТСния строк. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

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

πŸ’‘

ИспользованиС массива строк с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ объСдинСниСм (Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ) являСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для эффСктивной сборки тСкста Π² Ρ†ΠΈΠΊΠ»Π°Ρ… 1Π‘.

Π Π°Π±ΠΎΡ‚Π° с Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ Π²Ρ‹Π²ΠΎΠ΄

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

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

Для Π²Ρ‹Π²ΠΎΠ΄Π° многострочного тСкста Π² ΠΎΠ΄Π½Ρƒ ячСйку ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ пСрСноса строки Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ. Π˜Π½Π°Ρ‡Π΅ вСсь тСкст отобразится Π² ΠΎΠ΄Π½Ρƒ строку, игнорируя символы Ρ€Π°Π·Ρ€Ρ‹Π²Π°.

ΠœΠ΅Ρ‚ΠΎΠ΄/Бвойство НазначСниС ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ использования
ВСкстЯчСйки ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ тСкста ΠΈΠ· области Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ тСкст всСх ячССк области
Π’ΠΎΠ»ΡŒΠΊΠΎΠ’Π΅ΠΊΡΡ‚ Π Π΅ΠΆΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²Ρ‹Π΄Π°Π΅Ρ‚ Β«Π³ΠΎΠ»Ρ‹ΠΉΒ» тСкст
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ строки Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π»Π°Π³Π° ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚
Π‘Ρ‚Ρ€Π§ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° тСкста УдаляСт ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΠΎ краям
πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ большиС тСкстовыС Π±Π»ΠΎΠΊΠΈ Π² 1Π‘?
Π§Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ (+)
Π§Π΅Ρ€Π΅Π· массив ΠΈ Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ
Π§Π΅Ρ€Π΅Π· ВСкстовыйДокумСнт
Π§Π΅Ρ€Π΅Π· Π—Π°ΠΏΠΈΡΡŒΠ’Π΅ΠΊΡΡ‚Π° (Π€Π°ΠΉΠ»)

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк ΠΈ особСнности Π»ΠΎΠΊΠ°Π»ΠΈ

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк Π² 1Π‘ выполняСтся посимвольно, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ систСмы. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ порядок символов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ порядка ΠΊΠΎΠ΄ΠΎΠ² символов Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII ΠΈΠ»ΠΈ Unicode. НапримСр, Π±ΡƒΠΊΠ²Π° «Ё» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Β«Π•Β» ΠΈΠ»ΠΈ вмСстС с Π½Π΅ΠΉ, Π² зависимости ΠΎΡ‚ настроСк сравнСния.

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

Опасной ошибкой являСтся прямоС сравнСниС строк, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQL ΠΈ ΠΈΠ· Π²Π΅Π±-сСрвиса), Π±Π΅Π· привСдСния ΠΈΡ… ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ. Различия Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… ΠΈΠ»ΠΈ скрытых символах ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ строки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сочтСт Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ.

  • πŸ…°οΈ РСгистр β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ БтрНиТний ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ для Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ сравнСниСм.
  • 🚫 ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ β€” функция Π‘Ρ‚Ρ€Π§ΠΈΡΡ‚ΠΈΡ‚ΡŒ удаляСт лишниС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΠΎ краям ΠΈ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.
  • 🌐 Π›ΠΎΠΊΠ°Π»ΡŒ β€” ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ сортировка зависит ΠΎΡ‚ языковых настроСк ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы сСрвСра.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ сходство строк ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ просмотрщик Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «ШСстнадцатСричный ΠΊΠΎΠ΄Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ скрытыС символы ΠΈΠ»ΠΈ различия Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ЭффСктивная Ρ€Π°Π±ΠΎΡ‚Π° с тСкстом Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ дисциплины. Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ являСтся минимизация количСства создаваСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Если Π»ΠΎΠ³ΠΈΠΊΠ° позволяСт, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тСкстовыС прСобразования Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запроса ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности языка запросов 1Π‘, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это происходит Π½Π° сторонС Π‘Π£Π‘Π” ΠΈ часто быстрСС.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшними систСмами ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (JSON, XML) ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ парсинга строк. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON ΠΈ Π—Π°ΠΏΠΈΡΡŒJSON. Они Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Π½ΠΎ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ экранированиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ строками часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам бСзопасности ΠΈ цСлостности Π΄Π°Π½Π½Ρ‹Ρ….

Для хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… (ΡΡ‚Π°Ρ‚ΡŒΠΈ, описания, Π»ΠΎΠ³ΠΈ) Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π₯ранилищСЗначСния ΠΈΠ»ΠΈ поля Ρ‚ΠΈΠΏΠ° Длинная строка (Ссли Π΄Π»ΠΈΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ стандартныС Π»ΠΈΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ). Однако ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ индСксация Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈΠ»ΠΈ нСэффСктивна, поэтому для поиска ΠΏΠΎ содСрТимому Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ полнотСкстовый поиск.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ строковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

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

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

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠΎΠΌ Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈ ВСкстовыйДокумСнт?

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

Как быстро ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки Π² Π±Π°ΠΉΡ‚Π°Ρ…, Π° Π½Π΅ Π² символах?

Ѐункция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² Π±Π°ΠΉΡ‚Π°Ρ… (Π²Π°ΠΆΠ½ΠΎ для сСтСвых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π‘Π”), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UTF-8) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π° послС прСобразования строки Π² Π±ΡƒΡ„Π΅Ρ€ Π±Π°ΠΉΡ‚ΠΎΠ².

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π² большом Ρ†ΠΈΠΊΠ»Π΅?

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ строки Π² 1Π‘ нСизмСняСмы. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти, копируя Ρ‚ΡƒΠ΄Π° всё содСрТимоС. Π’ Ρ†ΠΈΠΊΠ»Π΅ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π»Π°Π²ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΌΡƒ росту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ выдСлСния ΠΈ освобоТдСния памяти, Ρ‡Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ сборщик мусора ΠΈ процСссор.

Как ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π΅ строки с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра?

Для рСгистрозависимого сравнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ = ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ Π±Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ². Для игнорирования рСгистра ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠ±Π΅ строки ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ функциями БтрНиТний ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сравнСния Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠ Π΅Π³ΠΈΡΡ‚Ρ€.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ названия Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ (8.2, 8.3, 8.4+). ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ со справочником синтаксиса (F1) для вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.