Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΡΡΡΠΎΠΊΠ° Π² 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);
}
}
ΠΡΠ²ΠΎΠ΄:
ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ?
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ.StringBuffer str1 = new StringBuffer("JavaRush");
StringBuilder str2 = new StringBuilder("Learning");
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ JVM ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π²Π΅ΡΠ½Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
10 ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Java
ΠΠ°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² Java, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅, Π½ΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΠΈΡ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ.
ΠΠ΅ΡΠΎΠ΄ codePointAt() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° Unicode ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π² ΡΡΡΠΎΠΊΠ΅. ΠΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ°Π²Π΅Π½ 0, Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° β 1 ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ΅ΡΠΎΠ΄ codePointBefore() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° Unicode ΠΏΠ΅ΡΠ΅Π΄ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π² ΡΡΡΠΎΠΊΠ΅. ΠΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ°Π²Π΅Π½ 1, Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° β 2 ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 0 Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ (Π²Π½Π΅ Π΄ΠΎΡΡΠ³Π°Π΅ΠΌΠΎΡΡΠΈ).ΠΠ΅ΡΠΎΠ΄ endWith() ΠΊΠ»Π°ΡΡΠ° Java String ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΡΡΠ° ΡΡΡΠΎΠΊΠ° Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΡΡΡΠΈΠΊΡΠΎΠΌ. ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ ΡΡΠ° ΡΡΡΠΎΠΊΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠΌ ΡΡΡΡΠΈΠΊΡΠΎΠΌ; Π² ΠΈΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ false.
ΠΠ΅ΡΠΎΠ΄ trim() Π² Java String β ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΄Π°Π»ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Unicode-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΡΠΎΠ±Π΅Π»Π° β '\u0020'. ΠΠ΅ΡΠΎΠ΄ trim() ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠΎΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠ΅ΡΠΎΠ΄ valueOf Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ , ΡΡΡΠΎΠΊΠΎΠΉ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ. ΠΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ, Π° Π΄ΡΡΠ³ΠΎΠΉ β ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
ΠΠ΅ΡΠΎΠ΄ isEmpty() ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΏΡΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΏΡΡΡΠ° (length() ΡΠ°Π²Π΅Π½ 0), ΠΈ false, Π΅ΡΠ»ΠΈ Π½Π΅Ρ.
ΠΠ΅ΡΠΎΠ΄ contentEquals() ΠΈΡΠ΅Ρ ΡΡΡΠΎΠΊΡ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΠΎΠ½Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΡΡ ββΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ»ΠΈ StringBuffer. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, ΠΈ false, Π΅ΡΠ»ΠΈ Π½Π΅Ρ.
ΠΠ΅ΡΠΎΠ΄ intern() ΠΊΠ»Π°ΡΡΠ° Java String Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ. Π’ΠΎ Π΅ΡΡΡ, ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°Π½Π° Π½ΠΎΠ²ΡΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ. ΠΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΡΠΎΠΊΠΈ ΠΊΡΡΠΈ Π² ΠΏΡΠ»Π΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ.
Character.offsetByCodePoints(CharSequence seq, int index, int codePointOffset) β ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Java, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΠΌΠ΅ΡΠ΅Π½Π° ΠΎΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ codePointOffset.
ΠΠ΅ΡΠΎΠ΄ regionMatches() ΠΊΠ»Π°ΡΡΠ° String ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π²Π΅Π½ΡΡΠ²Π° Π΄Π²ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°, Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°.