Java String indexOf() คืออะไร?
ในฐานะนักพัฒนา Java คุณต้องเจอกับความจำเป็นในการค้นหาตำแหน่งของอักขระหรือสตริงย่อยภายในสตริง Java มีเมธอดในตัวที่เรียกว่าindexOf()ใน คลาส Stringเพื่อช่วยเราในงานนี้ เมธอด indexOf ()ใน Java เป็นส่วนหนึ่งของ คลาส Stringเช่นคลาส Java String indexOf()ซึ่งใช้เพื่อจัดการสตริง วิธี การindexOf()ใน Java ส่งกลับตำแหน่งของการเกิดขึ้นครั้งแรกของอักขระหรือสตริงย่อยภายในสตริงที่กำหนด หากไม่พบอักขระหรือสตริงย่อย เมธอดจะส่งกลับ -1// Here is the syntax of the String indexOf():
public int indexOf(int ch)
public int indexOf(int ch, int fromIndex)
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
เรามาเจาะลึกถึงวิธีต่างๆ ที่เราสามารถใช้เมธอด `indexOf()` กันดีกว่า
ค้นหาตำแหน่งของอักขระในสตริง:
สมมติว่าเรามีสตริง"Hello, world!" . หากต้องการค้นหาตำแหน่งของอักขระ 'o' ในสตริง เราสามารถใช้โค้ดต่อไปนี้:public class StringIndexOfExample {
public static void main(String[] args) {
String str = "Hello, world!";
// We will use Str.indexOf here
int position = str.indexOf('o');
System.out.println("Position of 'o' in the string is: " + position);
}
}
เอาท์พุต
ตำแหน่งของ 'o' ในสตริงคือ: 4
ในโค้ดด้านบนนี้อันดับแรกเราได้ประกาศสตริงว่า "Hello, world!" จากนั้นใช้ เมธอด indexOf()เพื่อค้นหาตำแหน่งของอักขระ'o'ในสตริง เมธอดส่งคืนตำแหน่ง 4 ซึ่งเป็นการปรากฏครั้งแรกของอักขระ'o'ในสตริง
การค้นหาตำแหน่งของอักขระในสตริง
ต่อไปนี้คือตัวอย่างโค้ดที่สาธิตวิธีการใช้เมธอดindexOf()เพื่อค้นหาตำแหน่งของอักขระในสตริง:public class StringIndexOfExample {
public static void main(String[] args) {
String str = "Hello, world!";
// We will use Str.indexOf here
int position = str.indexOf('o');
while (position >= 0) {
System.out.println("'o' found at position " + position);
position = str.indexOf('o', position + 1);
}
}
}
เอาท์พุต
'o' พบที่ตำแหน่ง 4 'o' พบที่ตำแหน่ง 8
ในโค้ดด้านบนนี้อันดับแรกเราได้ประกาศสตริงว่า "Hello, world!" จากนั้นใช้ เมธอด indexOf()เพื่อค้นหาตำแหน่งของอักขระ'o'ในสตริง วิธีการ indexOf ()ส่งคืนตำแหน่งของอักขระที่ปรากฏครั้งแรกในสตริงหรือ -1 หากไม่พบอักขระ จากนั้นเราใช้การวนซ้ำ while เพื่อค้นหาอักขระ 'o' ในสตริงต่อไปโดยการเรียกindexOf()ด้วยอักขระและตำแหน่งเริ่มต้นถัดไปเป็นอาร์กิวเมนต์ เราทำซ้ำขั้นตอนนี้จนกว่าindexOf()จะส่งคืน -1 ซึ่งบ่งชี้ว่าไม่มีอักขระในสตริงปรากฏอีกต่อไป ในตัวอย่างนี้ เราพบว่าอักขระ'o'ปรากฏที่ตำแหน่ง 4 และ 8ในสตริง "Hello, world!"
ค้นหาตำแหน่งของสตริงย่อยในสตริง
สมมติว่าเรามีสตริง" Java is a popular programming language" หากต้องการค้นหาตำแหน่งของสตริงย่อย"การเขียนโปรแกรม"ในสตริง เราสามารถใช้โค้ดต่อไปนี้:public class StringIndexOfExample {
public static void main(String[] args) {
String str = "Java is a popular programming language";
// We will use Str.indexOf here
int position = str.indexOf("programming");
System.out.println("Position of 'programming' in the string is: " + position);
}
}
เอาท์พุต
ตำแหน่งของ 'การเขียนโปรแกรม' ในสตริงคือ: 18
ในโค้ดด้านบน อันดับแรกเราได้ประกาศสตริงว่า "Java is a popular programming language"จากนั้นจึงใช้ เมธอด indexOf()เพื่อค้นหาตำแหน่งของสตริงย่อย"programming"ในสตริง วิธีการส่งคืนตำแหน่ง 18 ซึ่งเป็นตำแหน่งเริ่มต้นของสตริงย่อย"การเขียนโปรแกรม"ในสตริง
ค้นหาอักขระหรือสตริงย่อยที่เกิดขึ้นทั้งหมดในสตริง
สมมติว่าเรามีข้อความว่า "Java เป็นภาษาโปรแกรมยอดนิยม Java ถูกใช้กันอย่างแพร่หลายในการพัฒนาเว็บ" . หากต้องการค้นหาอักขระ'a'หรือสตริงย่อย"Java"ในสตริงทั้งหมด เราสามารถใช้โค้ดต่อไปนี้:public class StringIndexOfExample {
public static void main(String[] args) {
String str = "Java is a popular programming language. Java is widely used in web development.";
int position = -1;
while ((position = str.indexOf('a', position + 1)) != -1) {
System.out.println("Found 'a' at position: " + position);
}
while ((position = str.indexOf("Java", position + 1)) != -1) {
System.out.println("Found 'Java' at position: " + position);
}
}
}
เอาท์พุต
พบ 'a' ที่ตำแหน่ง: 1 พบ 'a' ที่ตำแหน่ง: 3 พบ 'a' ที่ตำแหน่ง: 8 พบ 'a' ที่ตำแหน่ง: 15 พบ 'a' ที่ตำแหน่ง: 23 พบ 'a' ที่ตำแหน่ง: 31 พบ ' a' ที่ตำแหน่ง: 35 พบ 'a' ที่ตำแหน่ง: 41 พบ 'a' ที่ตำแหน่ง: 43 พบ 'Java' ที่ตำแหน่ง: 0 พบ 'Java' ที่ตำแหน่ง: 40
ในโค้ดข้างต้น เราได้ประกาศสตริงเป็นอันดับแรกว่า "Java เป็นภาษาโปรแกรมยอดนิยม Java ถูกใช้อย่างแพร่หลายในการพัฒนาเว็บ"จากนั้นจึงใช้ เมธอด indexOf()เพื่อค้นหาอักขระ'a'หรือสตริงย่อย"Java" ทั้งหมด ในสตริง เราใช้การวนซ้ำ while เพื่อวนซ้ำอักขระหรือสตริงย่อยทั้งหมดจนกว่า เมธอด indexOf()จะส่งคืน -1 ซึ่งบ่งชี้ว่าไม่มีอักขระหรือสตริงย่อยในสตริงปรากฏอีกต่อไป