สวัสดี! โปรแกรมเมอร์มักจะใช้วิธีการต่างๆ โดยอัตโนมัติ โดยไม่ได้คำนึงถึงวิธีการทำงานของมัน นี่เป็นเทคนิคพื้นฐานที่คุณต้องรู้
วิธีการโอเวอร์โหลดเป็นหนึ่งในหลักการพื้นฐานของความหลากหลายใน Java
ลองนึกภาพคุณมีสายยาว ตัวอย่างเช่นจดหมายและคุณต้องค้นหาสถานที่ที่ที่อยู่แรกถึงผู้รับเกิดขึ้นตามชื่อที่คุณรู้จักอยู่แล้ว คุณจะทำเช่นนี้ได้อย่างไร? ใช้วิธีตัวเลือกวิธีการ
วิธีการนี้ลำดับที่ 1.
วิธีการหมายเลข 2.
วิธีการ
สังเกตเห็นแล้วว่า ในลายเซ็นของทั้งสองวิธีนี้ (วิธีใดที่ใช้เป็นอาร์กิวเมนต์) ประเภทของสัญลักษณ์ที่ถูกส่งผ่านจะถูกระบุเป็นลำดับที่ 3.
วิธีการลำดับที่ 4.
วิธีการ
วิธีการโอเวอร์โหลดคืออะไร?
ก่อนที่เราจะดูวิธีการที่กล่าวถึงในชื่อเรื่อง เรามาจำไว้ว่า (และบางคนจะรู้) ว่าวิธีการโอเวอร์โหลดคืออะไร การโอเวอร์โหลดเมธอด 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 ดังที่คุณ อาจ
สังเกตเห็นแล้วว่า ในลายเซ็นของทั้งสองวิธีนี้ (วิธีใดที่ใช้เป็นอาร์กิวเมนต์) ประเภทของสัญลักษณ์ที่ถูกส่งผ่านจะถูกระบุเป็น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!
GO TO FULL VERSION