CodeGym /จาวาบล็อก /สุ่ม /สตริง Java IndexOf()
John Squirrels
ระดับ
San Francisco

สตริง Java IndexOf()

เผยแพร่ในกลุ่ม

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 ซึ่งบ่งชี้ว่าไม่มีอักขระหรือสตริงย่อยในสตริงปรากฏอีกต่อไป

บทสรุป

โดยสรุป เมธอด indexOf()ใน Java เป็นเครื่องมือที่มีประสิทธิภาพในการค้นหาตำแหน่งของอักขระหรือสตริงย่อยภายในสตริง เมื่อใช้รูปแบบต่างๆ ของวิธีการ เราสามารถค้นหาตำแหน่งของอักขระหรือสตริงย่อยในสตริงได้อย่างง่ายดาย โดยเริ่มจากดัชนีที่กำหนดหรือค้นหาอักขระหรือสตริงย่อยทั้งหมดที่ปรากฏ นี่เป็นวิธีการที่จำเป็นสำหรับนักพัฒนา Java ที่ทำงานกับสตริงในแอปพลิเคชันของตน
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION