ฟังก์ชันสตริงใน Java | Java String [พร้อมตัวอย่าง]
เผยแพร่แล้ว: 2020-12-01สารบัญ
บทนำ
Java ได้รับความเคารพอย่างมากในหมู่โปรแกรมเมอร์ เนื่องจากการรองรับการเขียนโปรแกรมเชิงวัตถุและฟังก์ชันที่กำหนดไว้ล่วงหน้าสำหรับประเภทข้อมูลที่มีให้ สตริงเป็นหนึ่งในประเภทข้อมูลที่น่าประทับใจของ java
พวกเขาจะไม่เปลี่ยนรูปและเก็บไว้ในพื้นที่ฮีพในบล็อกหน่วยความจำแยกต่างหากที่เรียกว่า String Constant Pool มีฟังก์ชันที่กำหนดไว้ล่วงหน้ามากมายสำหรับสตริงใน java มาสำรวจกัน!
ฟังก์ชั่น
charAt()
ในการเข้าถึงตัวละครในตำแหน่งใดตำแหน่งหนึ่ง เราไม่จำเป็นต้องวนซ้ำเพื่อวนซ้ำไปยังดัชนีนั้น ฟังก์ชัน charAt() ทำงานหนักเพื่อคุณ! ฟังก์ชัน charAt() ส่งกลับอักขระที่ตำแหน่งเฉพาะในสตริง โปรดจำไว้ว่าดัชนีเริ่มต้นจาก 0 ใน java
ฟังก์ชันนี้ถูกกำหนดด้วยตัวแก้ไขการเข้าถึงเป็นสาธารณะและจะส่งคืนถ่าน เมธอดนี้คาดว่าจำนวนเต็มจะเป็นพารามิเตอร์ และการเข้าถึงฟังก์ชันด้วยพารามิเตอร์ที่มากกว่าความยาวสตริงจะส่งคืนข้อยกเว้น IndexOutOfBounds ซึ่งเป็นข้อยกเว้นรันไทม์
สตริง str = “ นี่ไง ” ; ถ่าน แรก = str _ charAt( 0 ); ถ่าน วินาที = str _ charAt( 1 ); ระบบ . ออก _ println(แรก + “ “ + วินาที); |
ตัวอย่างข้างต้นจะให้ 'h e' เป็นเอาต์พุต เนื่องจากตัวแปรแรกถูกกำหนดด้วยอักขระ 'h' และตัวแปรที่สองถูกกำหนดด้วยอักขระ 'e'
CompareTo() และ CompareToIgnoreCase()
การเปรียบเทียบสองสตริงจะไม่ทำงานกับตัวดำเนินการ == ใน java เนื่องจากจะตรวจสอบว่าที่อยู่ของตัวแปรทั้งสองและคืนค่า จริง หากตัวแปรทั้งสองมีที่อยู่เดียวกัน ดังนั้นตัวดำเนินการ == จึงไม่สามารถเปรียบเทียบเนื้อหาของสตริงได้ ดังนั้นเมธอด CompareTo() จึงเป็นการดำเนินการ

เมธอดสาธารณะนี้คาดหวังให้สตริงหรืออ็อบเจ็กต์เป็นพารามิเตอร์ซึ่งจะถูกเปรียบเทียบและส่งกลับค่าจำนวนเต็มหลังจากการเปรียบเทียบศัพท์ โปรดจำไว้ว่าวิธีนี้คำนึงถึงขนาดตัวพิมพ์ แต่เราสามารถใช้ CompareToIgnoreCase() เพื่อเปรียบเทียบโดยไม่สนใจอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
สตริง str1 = “ สวัสดี ” ; สตริง str2 = “ สวัสดี ” ; สตริง str3 = “ สวัสดี ” ; int i1 = str1 . comapreTo(str2); int i2 = str2 . เปรียบเทียบ (str3); int i3 = str2 . CompareToIgnoreCase(str3); ระบบ . ออก _ println(i1 + “ “ i2 + “ “ + i3); |
ตัวอย่างข้างต้นจะพิมพ์ '1 0 1' เป็นเอาต์พุตเนื่องจากตัวแปร i1 ถูกกำหนดด้วย 1 เนื่องจากทั้งสองสตริงเท่ากัน ตัวแปร i2 ถูกกำหนดด้วย 0 เนื่องจากเรากำลังเปรียบเทียบสตริงตามความละเอียดอ่อนของตัวพิมพ์ ในทำนองเดียวกัน ตัวแปร i3 ถูกกำหนดด้วย 1 เนื่องจากเรากำลังเปรียบเทียบสตริงโดยไม่สนใจตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
concat()
เนื่องจากสตริงไม่สามารถเปลี่ยนรูปได้ เราจึงไม่สามารถแก้ไขค่าของสตริงได้ เราสามารถกำหนดค่าที่อัปเดตใหม่ให้กับตัวแปรเดียวกันได้ เราสามารถใช้เมธอด concat() เพื่อเชื่อมสตริงทั้งสองเข้าด้วยกัน เมธอดนี้คาดว่าสตริงจะเป็นพารามิเตอร์ที่จะต่อกันและส่งกลับสตริงที่ต่อใหม่
สตริง s1 = “ ก่อน “ ; สตริง s2 = “ วินาที “ ; ระบบ . ออก _ println(s1 . concat(s2)); |
ตัวอย่างด้านบนพิมพ์สตริง "วินาทีแรก"
อ่าน: คุณสมบัติและประโยชน์ของ JavaBeans: คุณควรใช้อย่างไร?
ประกอบด้วย()
การตรวจสอบว่ามีสตริงที่เป็นส่วนต่อมาจากสตริงอื่นหรือไม่ ขณะนี้เป็นทางเดินเค้ก มี () เมธอดใน java เป็นฟังก์ชันสาธารณะแบบบูลีนและคืนค่า true หากมีลำดับของอักขระในสตริงและเป็นเท็จหากไม่มี เมธอดนี้คาดหวังลำดับอักขระเป็นพารามิเตอร์ และส่งกลับ NullPointerException หากส่งอ็อบเจ็กต์ null เป็นพารามิเตอร์
สตริง s1 = " สวัสดี " ; ระบบ . ออก _ println(s1 . ประกอบด้วย( “ the “ )); //line1 ระบบ . ออก _ println(s1 . มี( “” )); //line2 ระบบ . ออก _ println(s1 . มี ( null )); //line3 |
ตัวอย่างด้านบนจะพิมพ์ว่า True สำหรับบรรทัดที่ 1 เนื่องจากลำดับ "the" มีอยู่ในสตริง ในทำนองเดียวกัน บรรทัดที่ 2 พิมพ์ว่า True เนื่องจากลำดับที่ว่างเปล่าจะคืนค่า True โดยค่าเริ่มต้น และบรรทัดที่ 3 จะส่ง NullPointerException เนื่องจากค่า Null ถูกส่งผ่านพารามิเตอร์
ดัชนีของ()
เราได้เห็นฟังก์ชัน java ซึ่งส่งคืนอักขระที่มีอยู่ในดัชนีที่กำหนด แต่ถ้าเราต้องการดัชนีของการเกิดขึ้นครั้งแรกของอักขระที่กำหนด ผ่อนคลาย ฟังก์ชัน indexOf() ทำงานได้ ฟังก์ชันนี้ถูกแทนที่ภายในด้วยลายเซ็นที่แตกต่างกันสี่แบบ มาดูรายละเอียดกัน

String s1 = “ เฮ้ เฮ้ ที่นั่น เฮ้ ที่นั่น เฮ้ ” ; ระบบ . ออก _ println(s1 . indexOf( “ มี “ )); //บรรทัด 1 ระบบ . ออก _ println(s1 . indexOf( “ มี “ , 5 )); //บรรทัด2 ระบบ . ออก _ println(s1 . indexOf( ' T ' )); //บรรทัดที่ 3 ระบบ . ออก _ println(s1 . indexOf( ' T ' , 16 )); //บรรทัดที่ 4 |
ในตัวอย่างข้างต้น ฟังก์ชันที่เรียกใน line1 ต้องการสตริงและส่งคืนดัชนีเริ่มต้นของการเกิดขึ้นครั้งแรกของสตริงที่กำหนด ซึ่งจะพิมพ์ 4 ในกรณีนี้ ฟังก์ชันที่เรียกใน line2 ต้องการสตริงพร้อมกับจำนวนเต็มเป็นพารามิเตอร์ ตอนนี้จำนวนเต็มนี้อ้างอิงถึงดัชนีเริ่มต้นที่การค้นหาสตริงที่กำหนดเริ่มต้นจากดัชนีนั้น จะพิมพ์ 37 ในกรณีนี้
ฟังก์ชันที่เรียกใช้ใน line3 คาดหวังให้อักขระเป็นพารามิเตอร์ ซึ่งจะคืนค่าการเกิดขึ้นครั้งแรกของอักขระที่กำหนด ซึ่งจะพิมพ์ออกมาเป็น 15 ในกรณีนี้ ในทำนองเดียวกัน ฟังก์ชันที่มีอยู่ใน line4 ต้องการอักขระและจำนวนเต็ม
โดยที่จำนวนเต็มแสดงถึงดัชนีเริ่มต้น จากนั้นค้นหาอักขระที่กำหนดโดยเริ่มจากอักขระนั้น จะพิมพ์ 26 ในกรณีนี้ โปรดจำไว้ว่าฟังก์ชันนี้คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่งเราสามารถเห็นได้ในตัวอย่างด้านบน
มันว่างเปล่า()
ฟังก์ชันนี้ทำงานง่ายๆ แต่มีประโยชน์มากจากมุมมองของโปรแกรมเมอร์ ฟังก์ชันบูลีนนี้คืนค่า True หากสตริงว่างเปล่าและเป็นเท็จหากไม่ใช่ ฟังก์ชันนี้ช่วยตรวจสอบว่าสตริงว่างหรือไม่ก่อนที่จะดำเนินการใดๆ กับสตริง เนื่องจากฟังก์ชันบางฟังก์ชันมีข้อยกเว้นสำหรับสตริงว่างที่ขัดจังหวะขั้นตอนการดำเนินการ
สตริง s1 = " สวัสดี " ; สตริง s2 = “” ; ระบบ . ออก _ println(s1 . isEmpty()); //line1 ระบบ . ออก _ println(s2 . isEmpty()); //line2 |
ตัวอย่างด้านบนจะพิมพ์ False สำหรับ line1 และ True สำหรับ line2
ระยะเวลา()
การค้นหาความยาวของสตริงไม่ใช่เรื่องน่าเบื่ออีกต่อไป ฟังก์ชัน length() ใน java จะคืนค่าความยาวของสตริงที่กำหนด ค่านี้จะคืนค่าศูนย์หากมีการส่งผ่านสตริงว่างเป็นพารามิเตอร์
สตริง s1 = “ abcdefghijklmnopqrstuvwxyz “ ; ระบบ . ออก _ println(s1 . length()); |
รหัสด้านบนพิมพ์ 26
แทนที่()
ไม่เหมือนกับฟังก์ชัน indexOf() ที่ส่งกลับเฉพาะการเกิดขึ้นครั้งแรกของลำดับ ฟังก์ชันแทนที่ () จะแทนที่อักขระที่ระบุทั้งหมดด้วยอักขระใหม่ที่กำหนดและส่งคืนสตริงใหม่ ฟังก์ชันสาธารณะนี้ต้องการอักขระสองตัว กล่าวคือ c1 และ c2 เป็นพารามิเตอร์ โดยจะค้นหาอักขระทั้งหมดที่เท่ากับ c1 และแทนที่ด้วย c2
สตริง s1 = “ สวัสดีสวัสดี “ ; ระบบ . ออก _ println(s1 . เปลี่ยน ( ' l ' , ' p ' )); |
โปรดจำไว้ว่าฟังก์ชันนี้คำนึงถึงขนาดตัวพิมพ์ ดังนั้นตัวอย่างด้านบนจะพิมพ์ว่า “heppoHELLO”
toLowerCase() และ toUpperCase()
การแปลงสตริงเป็นตัวพิมพ์เล็กหรือกลับกันเป็นงานที่สนุกใน java ซึ่งเพียงแค่ต้องการศิลปะของโค้ดบรรทัดเดียว และ toLowerCase(), toUpperCase() คือศิลปิน
ฟังก์ชันสาธารณะเหล่านี้ไม่คาดหวังพารามิเตอร์ใดๆ และส่งคืนสตริงใหม่ด้วยอักขระตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ที่อัปเดต
สตริง s1 = " สวัสดี " ; ระบบ . ออก _ println(s1 . toUpperCase()); //line1 ระบบ . ออก _ println(s1 . toLowerCase()); //line2 |
ในตัวอย่างด้านบน line2 พิมพ์ว่า "hey there" และ line1 พิมพ์ว่า "HEY THERE"

เรียนรู้: การจัดการเหตุการณ์ใน Java: นั้นคืออะไรและทำงานอย่างไร
ตัดแต่ง()
แนวทางที่ไร้เดียงสาในการลบช่องว่างที่ต่อท้ายและนำหน้าในสตริงคือการวนรอบสตริงและนำอักขระออกหากเป็นช่องว่างสีขาว แต่มีวิธีที่ดีที่สุด ฟังก์ชัน trim() จะลบช่องว่างนำหน้าและต่อท้ายทั้งหมดของสตริงและส่งกลับสตริงใหม่ ฟังก์ชันสาธารณะนี้ไม่คาดหวังพารามิเตอร์ใดๆ
สตริง s1 = " สวัสดี " ; ระบบ . ออก _ println(s1 . trim()); |
ตัวอย่างด้านบนจะพิมพ์ว่า "เฮ้ ที่นั่น" ซึ่งเป็นสตริงใหม่หลังจากตัดส่วนต่อท้ายและช่องว่างสีขาวนำหน้า
บทสรุป
เราได้ศึกษาฟังก์ชันสตริงสองสามอย่างใน java แล้ว เข้าใจว่ามันทำงานอย่างไร คาดหวังอะไร และส่งคืนอะไร สำรวจลายเซ็นที่ถูกแทนที่ของฟังก์ชันบางอย่าง เดินผ่านตัวอย่างข้อมูลโค้ดเพื่อความเข้าใจที่ถูกต้อง เมื่อคุณทราบฟังก์ชันบางอย่างแล้ว ให้เริ่มใช้งานเมื่อใดก็ได้ที่จำเป็น
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, OOP และการพัฒนาซอฟต์แวร์ฟูลสแตก โปรดดูประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์ฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง 9 + โครงการและการมอบหมาย สถานะศิษย์เก่า IIIT-B โครงการหลักในทางปฏิบัติและความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ