ซีรีส์ Java Basics ก่อนหน้านี้ได้กล่าวถึงแนวคิดหลักของ Java โดยเฉพาะรากฐานของเชิงวัตถุ ใน Java Advanced ฉันจะเสริมพื้นฐานของ Java และย้ายไปยังระดับแอปพลิเคชัน
ภาษาโปรแกรมส่วนใหญ่สามารถรองรับสตริงได้ สตริงคือชุดอักขระตามลำดับ เช่น "Hello World!" ใน Java สตริงจะถูกจัดเก็บเป็นวัตถุคลาส String วิธีการเรียกวัตถุสตริงสามารถใช้การดำเนินการที่เกี่ยวข้องกับสตริงได้
คลาสสตริงรวมอยู่ในแพ็คเกจ java.lang แพ็คเกจนี้จะถูกนำเข้าโดยอัตโนมัติเมื่อ Java เริ่มทำงาน ดังนั้นจึงสามารถใช้เป็นคลาสในตัวได้ เราไม่จำเป็นต้องใช้การนำเข้าอย่างชัดเจนเพื่อแนะนำคลาส String
สร้างสตริง
ก่อนหน้านี้เราใช้คลาสเพื่อสร้างวัตถุ ควรสังเกตว่าไม่จำเป็นต้องใช้คีย์เวิร์ดใหม่ในการสร้างออบเจ็กต์คลาส String ตัวอย่างเช่น:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
String s = "สวัสดีชาวโลก!";
System.out.println(s);
-
-
ที่จริงแล้ว เมื่อคุณเขียนนิพจน์ "Hello World" วัตถุนั้นจะถูกสร้างขึ้นในหน่วยความจำแล้ว หากคุณใช้ new String("Hello World!") ออบเจ็กต์สตริงจะถูกสร้างขึ้นซ้ำๆ
วัตถุ
คลาส String เป็นคลาสเดียวที่ไม่จำเป็นต้องมีคีย์เวิร์ดใหม่เพื่อสร้างวัตถุ ต้องให้ความสนใจเมื่อใช้งาน
การดำเนินการสตริง
คุณสามารถใช้ + เพื่อเชื่อมสตริงเข้าด้วยกัน เช่น:
คัดลอกรหัสรหัสดังต่อไปนี้:
"เอบีซี" + ส
การดำเนินการสตริงส่วนใหญ่จะนำไปใช้ผ่านวิธีการที่สอดคล้องกันของสตริง เช่น วิธีการต่อไปนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
ผลของวิธีการ
s.length() ส่งกลับความยาวของสตริง s
s.charAt(2) ส่งคืนอักขระที่มีตัวห้อย 2 ในสตริง s
s.substring(0, 4) ส่งคืนสตริงย่อยที่มีตัวห้อย 0 ถึง 4 ในสตริง s
s.indexOf("Hello") ส่งกลับดัชนีของสตริงย่อย "Hello"
s.startsWith(" ") กำหนดว่า s เริ่มต้นด้วยช่องว่างหรือไม่
s.endsWith("oo") กำหนดว่า s ลงท้ายด้วย "oo" หรือไม่
s.equals("Good World!") กำหนดว่า s เท่ากับ "Good World!" หรือไม่
== สามารถระบุได้ว่าสตริงถูกบันทึกในตำแหน่งเดียวกันเท่านั้น คุณต้องใช้เท่ากับ() เพื่อตรวจสอบว่าเนื้อหาของสตริงเหมือนกันหรือไม่
s.compareTo("Hello Nerd!") เปรียบเทียบสตริง s กับลำดับของ "Hello Nerd!" ในพจนานุกรม
ส่งกลับจำนวนเต็ม ถ้า <0 หมายความว่า s อยู่ก่อน "Hello Nerd!";
ถ้า >0 แสดงว่า s อยู่หลัง "Hello Nerd!";
ถ้า ==0 หมายความว่า s เท่ากับ "Hello Nerd!"
s.trim() ลบสตริงช่องว่างก่อนและหลัง s และส่งคืนสตริงใหม่
s.toUpperCase() แปลง s เป็นตัวพิมพ์ใหญ่และส่งกลับสตริงใหม่
s.toLowerCase() แปลง s เป็นตัวพิมพ์เล็กและส่งกลับสตริงใหม่
s.replace("World", "Universe") แทนที่ "World" ด้วย "Universe" และส่งกลับสตริงใหม่
วัตถุที่ไม่เปลี่ยนรูป
วัตถุคลาสสตริงเป็นวัตถุที่ไม่เปลี่ยนรูป โปรแกรมเมอร์ไม่สามารถแก้ไขวัตถุที่ไม่เปลี่ยนรูปที่มีอยู่ได้ นอกจากนี้เรายังสามารถสร้างวัตถุที่ไม่เปลี่ยนรูปได้ด้วยตัวเอง ตราบใดที่อินเทอร์เฟซไม่มีวิธีการแก้ไขข้อมูล
อย่างไรก็ตาม อ็อบเจ็กต์คลาส String มีฟังก์ชันสำหรับแก้ไขสตริง เช่น แทนที่() ฟังก์ชันการแก้ไขเหล่านี้นำไปใช้โดยการสร้างออบเจ็กต์ใหม่แทนที่จะแก้ไขออบเจ็กต์ต้นฉบับ ตัวอย่างเช่น:
คัดลอกรหัสรหัสดังต่อไปนี้:
s = s.replace("โลก", "จักรวาล");
การเรียก s.replace() ทางด้านขวาจะสร้างสตริงใหม่ "Hello Universe!" และส่งคืน (การอ้างอิงถึง) วัตถุนั้น ตามการกำหนด การอ้างอิง s จะชี้ไปที่สตริงใหม่ หากไม่มีการอ้างอิงอื่นถึงสตริงต้นฉบับ "Hello World!" ออบเจ็กต์สตริงดั้งเดิมจะถูกรวบรวมแบบขยะ
วัตถุที่ไม่เปลี่ยนรูป
จาวา API
Java มีแพ็คเกจอันทรงพลังมากมาย สิ่งสำคัญของการเรียนรู้ Java คือการทำความเข้าใจแพ็คเกจเหล่านี้และ API (Application Programming Interface) ที่มีอยู่ในแพ็คเกจเหล่านั้น คลาส String ถูกกำหนดไว้ใน java.lang.String คุณสามารถค้นหาเว็บไซต์ Oracle ต่อไปนี้เพื่อค้นหาเอกสารอย่างเป็นทางการของคลาสนี้:
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
เอกสารนี้มีคำแนะนำที่ครอบคลุมมากที่สุดเกี่ยวกับคลาส String
จริงๆ แล้ว มีเนื้อหามากมายในเอกสาร API ซึ่งคุณสามารถดูภาพรวมได้จากลิงก์ด้านล่าง:
http://docs.oracle.com/javase/6/docs/api/