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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ измСняСмая строка Π² Java?

НСизмСнный (Immutable) Π² Java ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ для ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ нСзависимо ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ создаСм строковый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса String, ΠΎΠ½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ создаСтся нСизмСняСмым ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅. Если ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ строки, JVM создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ (Mutable) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π’ измСняСмой строкС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ строки, ΠΈ JVM Π½Π΅ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’ измСняСмой строкС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ строки Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ строку Π² Java, сущСствуСт Π΄Π²Π° класса β€” StringBuffer ΠΈ StringBuilder, Π² Π½ΠΈΡ… класс String ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для нСизмСняСмой строки.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ строку Π² Java?

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ строку, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс StringBuffer ΠΈΠ»ΠΈ StringBuilder. Оба класса ΡΠΎΠ·Π΄Π°ΡŽΡ‚ измСняСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ зависит ΠΎΡ‚ сцСнария. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСдС, Π° строка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ потокобСзопасной. Π’ этом случаС Π²Π°ΠΌ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс StringBuffer. Π’ ΠΈΠ½ΠΎΠΉ ситуации, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Π° многопоточная срСда, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ StringBuilder. Π§Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚ΠΎ StringBuilder Π»ΡƒΡ‡ΡˆΠ΅ с этой Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с StringBuffer. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ строку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ классов StringBuffer ΠΈ StringBuilder.
public class MutableString
{
    public static void main (String[] args)
    {
        StringBuffer str1 = new StringBuffer("JavaRush");
        StringBuilder str2 = new StringBuilder("Learning");

        System.out.println("Value of str1 before change :" + str1);
        System.out.println("Value of str2 before change :" + str2);

        str1.append(".com");
        str2.append(" website");

        System.out.println("Value of str1 after change :" + str1);
        System.out.println("Value of str2 after change :" + str2);
    }
}
Π’Ρ‹Π²ΠΎΠ΄:
Value of str1 before change: JavaRush Value of str2 before change: Learning Value of str1 after change: JavaRush.com Value of str2 after change: Learning website
Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π΄Π²Π΅ измСняСмыС строки: ΠΎΠ΄Π½Ρƒ ΠΈΠ· StringBuffer, Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ· StringBuilder. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ мСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ строки. ΠŸΡ€ΠΈ этом Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ нСизмСняСмых строк.

Как измСняСмая строка Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² памяти?

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ строку. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² памяти.
StringBuffer str1 = new StringBuffer("JavaRush");
StringBuilder str2 = new StringBuilder("Learning");
ПослС выполнСния Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строки JVM создаст Π² памяти Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ ссылку Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

10 Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… строковых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Java

Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию прСдставлСн список ΠΈΠ· дСсяти ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Ρ‚Π°ΠΊ часто, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ. ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #194. ИзмСняСмая строка Π² Java. 10 Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… строковых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Java - 2
  1. ΠœΠ΅Ρ‚ΠΎΠ΄ codePointAt() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа Unicode ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу Π² строкС. ИндСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Ρ€Π°Π²Π΅Π½ 0, Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ символа β€” 1 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

  2. ΠœΠ΅Ρ‚ΠΎΠ΄ codePointBefore() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа Unicode ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ индСксом Π² строкС. ИндСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Ρ€Π°Π²Π΅Π½ 1, Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ символа β€” 2 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.
    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число (Π²Π½Π΅ досягаСмости).

  3. ΠœΠ΅Ρ‚ΠΎΠ΄ endWith() класса Java String провСряСт, заканчиваСтся Π»ΠΈ эта строка Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ суффиксом. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли эта строка заканчиваСтся Π΄Π°Π½Π½Ρ‹ΠΌ суффиксом; Π² ΠΈΠ½ΠΎΠΌ случаС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false.

  4. ΠœΠ΅Ρ‚ΠΎΠ΄ trim() Π² Java String β€” это встроСнная функция, которая удаляСт Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. НапримСр, Unicode-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа ΠΏΡ€ΠΎΠ±Π΅Π»Π° β€” '\u0020'. ΠœΠ΅Ρ‚ΠΎΠ΄ trim() провСряСт это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΈ послС строки, Ссли ΠΎΠ½ΠΎ сущСствуСт, Ρ‚ΠΎ удаляСт ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΡƒΡŽ строку.

  5. ΠœΠ΅Ρ‚ΠΎΠ΄ valueOf Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ числовой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. АргумСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, строкой ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся строкой, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” систСмой счислСния.

  6. ΠœΠ΅Ρ‚ΠΎΠ΄ isEmpty() провСряСт, являСтся Π»ΠΈ строка пустой ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли строка пуста (length() Ρ€Π°Π²Π΅Π½ 0), ΠΈ false, Ссли Π½Π΅Ρ‚.

  7. ΠœΠ΅Ρ‚ΠΎΠ΄ contentEquals() ΠΈΡ‰Π΅Ρ‚ строку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, содСрТит Π»ΠΈ ΠΎΠ½Π° Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ​​ТС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строкС ΠΈΠ»ΠΈ StringBuffer. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Ρ‚Π°ΠΊΠΈΠ΅ символы ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΈ false, Ссли Π½Π΅Ρ‚.

  8. ΠœΠ΅Ρ‚ΠΎΠ΄ intern() класса Java String Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ каноничСскоС прСдставлСниС для строкового ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° строки ΠΈΠ· памяти, Ссли ΠΎΠ½Π° создана Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом. ΠœΠ΅Ρ‚ΠΎΠ΄ создаСт Ρ‚ΠΎΡ‡Π½ΡƒΡŽ копию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° строки ΠΊΡƒΡ‡ΠΈ Π² ΠΏΡƒΠ»Π΅ строковых констант.

  9. Character.offsetByCodePoints(CharSequence seq, int index, int codePointOffset) β€” это встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, Ссли ΠΎΠ½Π° смСщСна ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ индСкса Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ codePointOffset.

  10. ΠœΠ΅Ρ‚ΠΎΠ΄ regionMatches() класса String ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ совпадСния ΠΈΠ»ΠΈ равСнства Π΄Π²ΡƒΡ… строковых областСй. БущСствуСт Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ΄ΠΈΠ½ являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра.