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