“สวัสดี อามีโก้!”

"แต่ Bilaabo คุณได้กล่าวสวัสดีแล้ว"

“จริงเหรอ ฉันยังชอบเริ่มบทเรียนแต่ละบทด้วยประโยคนั้นอยู่เลย”

"วันนี้เราจะมาเรียนคลาส String แบบเจาะลึกกันครับ"

"แต่ฉันรู้ทุกอย่างเกี่ยวกับมันแล้ว ฉันรู้ด้วยซ้ำว่าคลาส String นั้นไม่เปลี่ยนรูป"

"คลาสสตริงมี 46 เมธอด คุณรู้กี่เมธอด"

“ไม่เกินสิบ จริงๆ น่าจะประมาณ 5 สูงสุด”

“งั้นก็ฟังนะ”

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

"คลาส String สำหรับสตริงที่ไม่เปลี่ยนรูป และ คลาส StringBuilderสำหรับคลาสที่ไม่เปลี่ยนแปลง ออบเจกต์ของคลาสเหล่านี้สามารถแปลงเป็นประเภทอื่นได้อย่างง่ายดาย ในกรณีส่วนใหญ่ นักพัฒนา Java ต้องการเพียงแค่สตริง ซึ่งพิสูจน์ได้ว่าผู้สร้าง Java คิดถูก"

"ถ้าฉันต้องการสตริง ฉันจะใช้คลาสสตริง และถ้าฉันต้องการสตริงที่ไม่แน่นอน ฉันจะใช้คลาสสตริงบิลเดอร์ "

"ใช่ ที่จริงแล้วมีอีกคลาสหนึ่งชื่อ StringBuffer ซึ่งเป็นสำเนาของ StringBuilder ยกเว้นว่าเมธอดทั้งหมดของมันถูกประกาศเป็นsynchronizedเพื่อให้สามารถเข้าถึงออบเจกต์ได้จากเธรดต่างๆ ของโปรแกรม"

"แล้วตัวอย่างนี้ล่ะ สตริงไม่เปลี่ยนที่นี่เหรอ"

String s = "cat";
s = s + "-" + s;

"ไม่ มีวัตถุสตริงสองตัวที่นี่: «cat» และ «cat-cat» อันที่สองถูกสร้างขึ้นโดยใช้อันแรก แต่อ็อบเจกต์แรกไม่เปลี่ยนแปลง ในความเป็นจริง สิ่งต่าง ๆ น่าสนใจกว่ามากที่นี่ นี่คือรหัส คอมไพเลอร์สร้างขึ้นเมื่อรวบรวมตัวอย่างของคุณ:"

String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();

"ดังนั้น StringBuilder มักจะใช้เพื่อสร้างสตริงใหม่ แต่บางครั้งคอมไพเลอร์ก็ทำงานทั้งหมดให้คุณ แต่เวอร์ชันของคุณง่ายกว่า คุณว่าไหม"

"ใช่ มันยอดเยี่ยมมากที่ Java มีคอมไพเลอร์ขั้นสูงเช่นนี้"

"เอาล่ะ เรามาทำความรู้จักกับเมธอดของคลาส String กันดีกว่า:"

1) ฉันจะหาความยาวของสตริงได้อย่างไร

" เมธอด ความยาวส่งคืนความยาวของสตริง (จำนวนอักขระในนั้น)"

วิธีการ ตัวอย่าง)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) ฉันจะรับอักขระจากสตริงได้อย่างไร

" วิธี charAtส่งคืนอักขระจากสตริงตามดัชนี ดัชนีอักขระเริ่มต้นที่ 0

วิธีการ ตัวอย่าง)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) ฉันจะรับอักขระจากสตริงได้อย่างไร

ฉันจะรับอักขระจากสตริงได้อย่างไร

วิธีการ ตัวอย่าง)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) ฉันจะเปรียบเทียบสตริงได้อย่างไร

"เมธอดเท่ากับจะตรวจสอบว่าสตริงตรงกันหรือไม่ และ เมธอด equalsIgnoreCaseจะตรวจสอบว่าสตริงตรงกันหรือไม่เมื่อตัวพิมพ์ถูกละเว้น

วิธีการ วิธีการ
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) ฉันจะทำให้ตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กได้อย่างไร

" เมธอด toUpperCaseส่งคืนสำเนาของสตริงที่มีตัวพิมพ์ใหญ่ทั้งหมด"

" เมธอด toLowerCaseจะส่งกลับสำเนาของสตริงที่มีตัวพิมพ์เล็กทั้งหมด"

วิธีการ ตัวอย่าง)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

ผลลัพธ์:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

ผลลัพธ์:

s == "good news, everyone!";

6) ฉันจะลบช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุดของสตริงได้อย่างไร

"วิธีการตัดแต่งจะส่งคืนสำเนาของสตริงที่ไม่มีอักขระช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุด"

วิธีการ ตัวอย่าง)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

ผลลัพธ์:

s == "Good news, everyone!";