ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Java
ΠΡΡΠΎΡΠ½ΠΈΠΊ: Dev.to Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ (Pointers) β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ, Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² Java Π½Π΅Ρ βΠ½Π°ΡΡΠΎΡΡΠ΅ΠΉβ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎ ΠΊ ΡΡΠ°ΡΡΡΡ Π΄Π»Ρ Π½Π°Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌΡ.Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° Π°Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΎΡΠ°).Π‘ΠΈΠΌΡΠ»ΡΡΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅ ΡΠΈΠΏΠ° ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅.// Wrapping interface
private interface FunctionPointer {
// Method signatures of pointed method
void methodSignature(int a);
}
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
public void method1(int b) {
System.out.println("Called method1 with integer " + b);
}
public void method2(int v) {
System.out.println("Called method2 with integer " + v);
}
public void method3(int a) {
System.out.println("Called method3 with integer " + a);
}
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°-ΠΎΠ±Π΅ΡΡΠΊΠΈ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
// Create a variable of the interface and assign
// the method references
FunctionPointer pointer1 = this::method1;
FunctionPointer pointer2 = this::method2;
// Call both methods using their "pointer"
pointer1.methodSignature(3);
pointer2.methodSignature(2);
// Reassign and call pointer 1
pointer1 = this::method3;
pointer1.methodSignature(5);
Called method1 with integer 3
Called method2 with integer 2
Called method3 with integer 5
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.// Create a method reference and assign a methods using a lambda.
FunctionPointer pointer1 =
(a) -> System.out.println("Called pointer1 with int " + a);
FunctionPointer pointer2 =
(b) -> System.out.println("Called pointer2 with int " + b);
ΠΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠΎΠ·Π΄Π°Π² ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°-ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.// Create an array of "pointers"
FunctionPointer[] functionPointersArray = new FunctionPointer[3];
// Assign methods
functionPointersArray[0] = this::method1;
functionPointersArray[1] = this::method2;
functionPointersArray[2] = this::method3;
// Call methods
functionPointersArray[0].methodSignature(3);
functionPointersArray[1].methodSignature(4);
functionPointersArray[2].methodSignature(5);
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠΈΠ² ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
ΠΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΡΠΎ ΠΏΡΡΠΌΠΎΠΉ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΡΡΠΈ Π² 5 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠ΅ ΠΈΠ·-Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π³Π° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ. ΠΠΎ Π²Ρ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎΠ΄ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ ΠΎΠ± ΡΡΠΎΠΌ.ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π°Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ. Java Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΠΉ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°, Π½ΠΎ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.indexOf Π² Java β ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΡΠΎΠΊΠΈ Π² Java
ΠΡΡΠΎΡΠ½ΠΈΠΊ: FreeCodeCamp Π‘ΡΡΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ. ΠΠ΅ΡΠΎΠ΄ indexOf Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π² ΡΡΡΠΎΠΊΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² indexOf. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ Java.Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° indexOf
ΠΠ΅ΡΠΎΠ΄ indexOf ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:public int indexOf(int char)
public int indexOf(int char, int fromIndex)
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΡΠ½ΠΈΠΌ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:- char ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΡΡΡΠΎΠΊΠ΅.
- fromIndex ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΡΠΈΠΌΠ²ΠΎΠ»Π°/ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ indexOf, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ.
- str ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ Π² ΡΡΡΠΎΠΊΠ΅.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ indexOf Π² Java
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΡΡΡΠΎΠΊΠ΅. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ public int indexOf(int char).ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° indexOf(int Char)
public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
System.out.println(greetings.indexOf("o"));
// 4
}
}
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠΉ Π½Π°ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° βΠΎβ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π²Π΅Π½ 4. Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° βoβ, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ Π±ΡΠ»ΠΈ Π»ΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΠΎΡΠΎΠ³ΠΎ βΠΎβ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ°, ΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΡΡΡΠΎΠΊΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΠ°Π²Π½ΡΠΉ Π½ΡΠ»Ρ, Π²ΡΠΎΡΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΠ°Π²Π½ΡΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° indexOf(int Char, Int fromIndex)
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ int indexOf(int char, int fromIndex):public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
System.out.println(greetings.indexOf("o", 5));
// 7
}
}
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ indexOf Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΡΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
H => index 0
e => index 1
l => index 2
l => index 3
0 => index 4
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ 5 Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ βWβ. ΠΡΡΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ β ΡΡΠΎ ΠΏΡΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρ βHelloβ ΠΈ βWorldβ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΡΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π±ΡΠ΄ΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. 7 Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° βoβ.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° Int indexOf(String Str)
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΉΠΌΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ public int indexOf(String str), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ.public class Main {
public static void main(String[] args) {
String motivation = "Coding can be difficult but don't give up";
System.out.println(motivation.indexOf("be"));
// 11
}
}
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π²Π΅ΡΠ½ΡΠ»ΠΈ 11? ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π·Π΄Π΅Π», ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π° ΠΊΠ°ΠΊ β ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ β ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ΅. 11 β ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° βbβ.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° indexOf(String Str, Int fromIndex)
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ β public int indexOf(String str, int fromIndex) β ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ public int indexOf(int char, int fromIndex). ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.public class Main {
public static void main(String[] args) {
String motivation = "The for loop is used for the following";
System.out.println(motivation.indexOf("for", 5));
// 21
}
}
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΡΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ for. 21 β ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ for.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ Π² ΡΡΡΠΎΠΊΠ΅, ΠΌΠ΅ΡΠΎΠ΄ indexOf Π²Π΅ΡΠ½Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -1. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
public class Main {
public static void main(String[] args) {
String motivation = "The for loop is used for the following";
System.out.println(motivation.indexOf("code"));
// -1
}
}