JavaRush /จาวาบล็อก /Random-TH /เมธอด IndexOf ของคลาส String: เหตุใดจึงมีความจำเป็นและวิธ...

เมธอด IndexOf ของคลาส String: เหตุใดจึงมีความจำเป็นและวิธีการทำงาน

เผยแพร่ในกลุ่ม
สวัสดี! โปรแกรมเมอร์มักจะใช้วิธีการต่างๆ โดยอัตโนมัติ โดยไม่ได้คำนึงถึงวิธีการทำงานของมัน นี่เป็นเทคนิคพื้นฐานที่คุณต้องรู้

วิธีการโอเวอร์โหลดคืออะไร?

ก่อนที่เราจะดูวิธีการที่กล่าวถึงในชื่อเรื่อง เรามาจำไว้ว่า (และบางคนจะรู้) ว่าวิธีการโอเวอร์โหลดคืออะไร การโอเวอร์โหลดเมธอด Java อนุญาตให้กำหนดสองวิธีขึ้นไปที่มีชื่อเดียวกันภายในคลาสเดียวกัน สิ่งนี้จะเกิดขึ้นได้ก็ต่อเมื่อมีพารามิเตอร์อินพุตที่แตกต่างกัน ในกรณีนี้ วิธีการเรียกว่าโอเวอร์โหลด และกระบวนการนั้นเรียกว่าวิธีการโอเวอร์โหลด เมธอด IndexOf ของคลาส String: เหตุใดจึงมีความจำเป็นและวิธีการทำงาน - 1วิธีการโอเวอร์โหลดเป็นหนึ่งในหลักการพื้นฐานของความหลากหลายใน Java

indexOfวิธี การเรียนมีไว้เพื่ออะไร ?String

ลองนึกภาพคุณมีสายยาว ตัวอย่างเช่นจดหมายและคุณต้องค้นหาสถานที่ที่ที่อยู่แรกถึงผู้รับเกิดขึ้นตามชื่อที่คุณรู้จักอยู่แล้ว คุณจะทำเช่นนี้ได้อย่างไร? ใช้วิธีindexOf javaเรียน Stringวิธีการนี้เป็นตัวอย่างทั่วไปของวิธีการโอเวอร์โหลด ซึ่งเราได้กล่าวถึงข้างต้น

ตัวเลือกวิธีการindexOf

วิธีการนี้java string indexOfมีสี่รูปแบบที่แตกต่างกัน:

ลำดับที่ 1.indexOf(int ch)

วิธีการint indexOf(int ch)ส่งกลับดัชนีในสตริงที่กำหนดของการเกิดขึ้นครั้งแรกของอักขระที่ระบุ กล่าวอีกนัยหนึ่ง เราจะได้จำนวนการปรากฏครั้งแรกของอักขระที่กำหนด นับจากซ้ายไปขวา ตัวอย่าง:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
เอาต์พุตคอนโซล:

2
หากตัวละครที่เราค้นหาไม่อยู่ในบรรทัดนี้ เราจะได้ -1
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
เอาต์พุตคอนโซล:

-1
ป.ล. เพื่อไม่ให้เกิดความสับสน คุณต้องไม่ลืมว่าอักขระในบรรทัดไม่ได้นับจาก "1,2,3..." แต่นับจาก "0,1,2..."

หมายเลข 2.indexOf(int ch, int fromIndex)

วิธีการint indexOf(int ch, int fromIndex)ส่งกลับดัชนีในสตริงนี้ของการเกิดขึ้นครั้งแรกของอักขระที่ระบุ เริ่มต้นการค้นหาที่ดัชนีที่ระบุ วิธีนี้เป็นเวอร์ชันก่อนหน้าที่ทันสมัยกว่า ข้อแตกต่างคือเราระบุจำนวนองค์ประกอบที่จะเริ่มต้นการค้นหาจริง ตัวอย่าง:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
เอาต์พุตคอนโซล:

9
หากดัชนีที่ใช้ค้นหาเกินความยาวของสตริง คำตอบจะเป็น -1 ดังที่คุณ อาจเมธอด IndexOf ของคลาส String: เหตุใดจึงมีความจำเป็นและวิธีการทำงาน - 2สังเกตเห็นแล้วว่า ในลายเซ็นของทั้งสองวิธีนี้ (วิธีใดที่ใช้เป็นอาร์กิวเมนต์) ประเภทของสัญลักษณ์ที่ถูกส่งผ่านจะถูกระบุเป็นintไม่ใช่ charอย่างไรก็ตาม เราส่งchar. เนื่องจากสตริงถูกจัดเก็บเป็นอาร์เรย์ไบต์ โดยที่เซลล์สอดคล้องกับอักขระเฉพาะcharประเภท ความสอดคล้องระหว่างไบต์charนั้นดำเนินการตามตาราง ASCII ASCII (รหัสมาตรฐานอเมริกันสำหรับการแลกเปลี่ยนข้อมูล) คือตารางที่จับคู่อักขระทั่วไปที่สามารถพิมพ์ได้และไม่สามารถพิมพ์ได้กับรหัสตัวเลข ดังนั้น เมื่ออักขระบางตัวถูกส่งไป อักขระนั้นcharจะถูกแปลงเป็นตัวเลขที่แสดงถึงอักขระนั้นในตาราง ASCII โดยอัตโนมัติ จากนี้เราสามารถส่งหมายเลข ( int) ไปยังวิธีการได้โดยตรงซึ่งสอดคล้องกับอักขระที่เราต้องการ ตัวอย่างเช่น อักขระ 'e' ในตาราง ASCII สอดคล้องกับตัวเลข 101 ดังนั้นเราจึงสามารถทำซ้ำตัวอย่างก่อนหน้าได้ แต่ไม่มีchar:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
เอาต์พุตคอนโซลของเราไม่มีการเปลี่ยนแปลง:

9
ป.ล. ในบางกรณี วิธีการเหล่านี้สามารถใช้แทนกันได้ เช่นstr.indexOf('e');จะคล้ายกัน - str.indexOf('e', 0);.

ลำดับที่ 3.indexOf(String str)

วิธีการint indexOf(String str)ส่งกลับดัชนีในแถวที่กำหนดของการเกิดขึ้นครั้งแรกของสตริงย่อยที่ระบุ โดยพื้นฐานแล้วมันแตกต่างไปจากตัวเลือกแรกตรงที่วิธีนี้ค้นหาสตริงย่อยทั้งหมด ( String) แล้ว ด้วยเหตุนี้ เราจึงสามารถมองหาสิ่งที่เฉพาะเจาะจงมากขึ้นได้ ตัวอย่าง:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
เอาต์พุตคอนโซล:

0
ป.ล. รูปแบบทั้งหมดindexOfคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่: อักขระตัวพิมพ์ใหญ่ (ตัวพิมพ์ใหญ่) และอักขระตัวพิมพ์เล็ก (ตัวอักษรเล็ก) ถือว่าแตกต่างกัน ระวัง.

ลำดับที่ 4.indexOf(String str, int fromIndex)

วิธีการindexOf(String str, int fromIndex)ส่งกลับดัชนีในแถวของการเกิดขึ้นครั้งแรกของสตริงย่อยที่ระบุเริ่มต้นที่ดัชนีที่ระบุ ตัวเลือกนี้เป็นตัวเลือกก่อนหน้าที่ทันสมัยกว่าอีกครั้ง แต่มีการบ่งชี้สถานที่ที่จะทำการค้นหา ตัวอย่าง:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
เอาต์พุตคอนโซล:

26
ป.ล. หากคุณระบุดัชนีเริ่มต้นที่เป็นลบ วิธีindexOfการจะรับรู้ว่าเป็น 0 ในกรณีนี้ วิธีการจะคล้ายกับวิธีก่อนหน้าอีกครั้ง (ซึ่งไม่ได้ระบุดัชนีเริ่มต้น) มันคือทั้งหมดสำหรับวันนี้ ตอนนี้คุณมีความรู้มากขึ้นแล้วด้วยindexOfJava!
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION