เมื่อคุณเริ่มเรียนรู้ Java คลาส String จะดึงดูดความสนใจของคุณ ด้วยคุณสมบัติที่เป็นเอกลักษณ์
คุณสามารถสร้างและจัดการสตริงใน Java ได้ง่ายกว่าภาษาอื่น นั่นเป็นเพราะคลาส String มีคุณสมบัติที่หลากหลาย
ตามคุณสมบัติเหล่านี้ มีหลายวิธีในการสร้างและแก้ไขสตริง ขึ้นอยู่กับความชอบและความต้องการของคุณ หลายๆ อย่างจะขึ้นอยู่กับแอปพลิเคชันของคุณและตำแหน่งที่จำเป็นต้องใช้สตริง
Java Strings แตกต่างกันอย่างไร?
หากคุณเคยทำงานกับภาษา C มาก่อน คุณจะรู้ว่าสตริงในภาษา C เป็นอาร์เรย์ของ ตัวอักษร (ตัวอักษร). ในทางกลับกัน สตริง Java จะไม่เปลี่ยนรูปและมีอักขระ Unicode
บูตคู่ windows 10 และ linux
หนึ่งในคุณสมบัติหลักที่ทำให้สตริงใน Java ไม่ซ้ำกันคือการต่อกัน เพียงใช้ตัวดำเนินการบวก + เพื่อรวมสตริงตั้งแต่สองสตริงขึ้นไป นี่คือสิ่งที่คุณไม่สามารถทำได้กับวัตถุ Java อื่น ๆ เช่น จุด หรือ วงกลม .
ดังที่ได้กล่าวไว้ก่อนหน้านี้ Java Strings นั้นไม่เปลี่ยนรูป นั่นคือ คุณไม่สามารถแก้ไขมันได้ ตัวอย่างเช่นวิธีการเช่น toUpperCase() และ ตัวพิมพ์เล็ก() สร้างสตริงใหม่ทั้งหมด แทนที่จะทำการเปลี่ยนแปลงเนื้อหาสตริงที่มีอยู่ ตอนนี้รหัสของคุณจะส่งคืนสตริงที่สร้างขึ้นใหม่นี้
ที่เกี่ยวข้อง: วิธีจัดการข้อความใน PHP ด้วยฟังก์ชันเหล่านี้
อีกพื้นที่หนึ่งที่สตริงต่างกันคือเมื่อใช้อักขระ null เพื่อยุติสตริงในภาษาเช่น C ใน Java สตริงคืออ็อบเจ็กต์ที่สนับสนุนโดยอาร์เรย์อักขระ หากคุณต้องการอ่านเนื้อหาของสตริงในลักษณะที่อาร์เรย์อักขระเป็นตัวแทน ใช้ toCharArray() วิธีการจะทำงาน
การเปรียบเทียบสตริงใน Java นั้นสะดวกกว่าภาษาโปรแกรมอื่นๆ แทนที่จะเขียนบล็อกยาวๆ ของโค้ดเพื่อเปรียบเทียบสตริง คุณสามารถใช้ตัว เท่ากับ () วิธีเปรียบเทียบสตริงตั้งแต่สองตัวขึ้นไปที่ใช้ในโปรแกรมใดๆ สาเหตุหลักมาจากในจาวา the เท่ากับ เมธอดถูกแทนที่โดยคลาส String ซึ่งทำให้การเปรียบเทียบสตริงเป็นชิ้นส่วนของเค้ก
ในบันทึกที่คล้ายกัน การค้นหาภายในสตริงย่อยใน Java ก็ไม่ยุ่งยากเช่นกัน ขณะใช้นิพจน์ทั่วไป หรือวิธีการเช่น LastIndexOf() และ ดัชนีของ (), คุณสามารถค้นหาส่วนของสตริงและส่งกลับค่าได้เมื่อมีการระบุการจับคู่แล้ว คุณยังสามารถใช้นิพจน์ทั่วไปเพื่อตัดแต่งและแยกสตริงต่างๆ และใช้แต่ละนิพจน์เพื่อการใช้งานที่หลากหลายในโปรแกรมใดก็ได้
สตริงถูกเก็บไว้ในหน่วยความจำอย่างไร?
ตอนนี้คุณรู้แล้วว่าสตริงใน Java แตกต่างและมีประโยชน์อย่างไร มาสำรวจคลาส String กัน หากคุณรู้เรื่องการจัดการหน่วยความจำใน Java สักหนึ่งหรือสองอย่าง คุณต้องจัดการกับเอนทิตีหลักสองอย่าง: ฮีปและสแต็ก
สแต็กถูกใช้เพื่อดำเนินการตามกระบวนการและการดำเนินการหลังจากถูกเรียกโดยโปรแกรม Java ในขณะที่ฮีปจะจัดเก็บเนื้อหา ซึ่งจำเป็นต่อการรันและรันโค้ดอย่างมีประสิทธิภาพ ดังนั้นการจัดการหน่วยความจำมีความเกี่ยวข้องในกรณีของสตริงอย่างไร
นั่นเป็นเพราะคลาสสตริงและตัวอักษรสตริงใน Java ได้รับการปฏิบัติที่แตกต่างกัน สิ่งนี้บ่งชี้ว่าตัวอักษรสตริงถูกกำหนดพื้นที่จัดเก็บเฉพาะในหน่วยความจำฮีป เรียกว่าสตริงค่าคงที่ของสตริง ดังนั้น เมื่อใดก็ตามที่คุณใช้ตัวอักษรสตริงเพื่อสร้างอ็อบเจ็กต์สตริงใน Java String Constant Pool จะจัดเก็บไว้
ในทางตรงกันข้าม เมื่อคุณใช้ ใหม่ คำหลักเพื่อสร้างวัตถุสตริง Java จะปฏิบัติต่อพวกเขาเช่นเดียวกับวัตถุอื่น ๆ และส่งไปยังฮีปเพื่อจัดเก็บ
ตัวอย่างตัวอักษรสตริง
ตอนนี้คุณรู้เพียงพอเกี่ยวกับวัตถุสตริงแล้ว มาดูตัวอย่างของตัวอักษรสตริง:
public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}
ที่นี่สตริงตามตัวอักษรสร้างวัตถุสตริงที่มีเนื้อหา Hello World จาก MUO Java จะส่งวัตถุนี้ไปยัง String Constant Pool
การใช้คีย์เวิร์ดใหม่
คุณยังสามารถใช้ ใหม่ คำหลักเพื่อสร้างวัตถุสตริง
อ็อบเจ็กต์สตริงของสตริง himuo ที่มีเนื้อหา Hello World จาก MUO ถูกสร้างขึ้นโดยสตริงลิเทอรัลและจะถูกส่งไปยัง String Constant Pool ในทำนองเดียวกัน วัตถุสตริงยังสามารถสร้างได้โดยใช้คีย์เวิร์ดใหม่ดังนี้:
public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}
ตัวอย่างข้างต้นใช้ the ใหม่ คำหลักเพื่อสร้างวัตถุสตริง ตามที่อธิบายไว้ก่อนหน้านี้ พวกมันจะถูกส่งไปยังฮีป โดยที่พวกมันจะถูกเก็บไว้กับตัวแปรและอ็อบเจ็กต์อื่นๆ ที่รอให้โปรแกรมดำเนินการ
ถึงตอนนี้ คุณต้องอยากรู้เกี่ยวกับ String Constant Pool และใช่แล้ว มันจัดสรรพื้นที่พูลให้กับวัตถุตามเนื้อหาของวัตถุสตริง หลังจากที่ String Constant Pool ได้รับอ็อบเจ็กต์ จะตรวจสอบอ็อบเจ็กต์เพื่อตรวจสอบว่าสองอ็อบเจ็กต์มีเนื้อหาเหมือนกันทุกประการหรือไม่
วัตถุสตริงสองรายการสามารถเก็บเนื้อหาเดียวกันได้หรือไม่
เมื่อใช้ตัวอักษรสตริงเพื่อสร้างอ็อบเจ็กต์ใหม่ Java Virtual Machine (JVM) จะตรวจทานเนื้อหาอ็อบเจ็กต์และประเมินว่ามีอยู่ในพูลหรือไม่ เมื่ออ็อบเจ็กต์มีเนื้อหาที่มีอยู่แล้วในพูล การอ้างอิงของอ็อบเจ็กต์จะถูกส่งกลับโดยไม่สร้างอ็อบเจ็กต์ใหม่ หากคุณต้องสร้างวัตถุใหม่ คุณต้องตรวจสอบให้แน่ใจว่าเนื้อหามีความชัดเจนและไม่ซ้ำกัน
อย่างไรก็ตาม หากคุณใช้ ใหม่ คีย์เวิร์ดเพื่อสร้างสตริงใหม่ก็จะถูกประมวลผลต่างกัน เมื่อคุณใช้ ใหม่ คีย์เวิร์ดเพื่อสร้างสตริงใหม่ จะถูกสร้างขึ้นโดยไม่คำนึงถึงว่ามีเนื้อหาเดียวกันกับสตริงที่มีอยู่หรือไม่
สิ่งนี้บ่งชี้ว่าอ็อบเจ็กต์สตริงที่มีอยู่สองอ็อบเจ็กต์ที่เก็บไว้ในหน่วยความจำฮีปได้รับอนุญาตให้สร้างเนื้อหาเดียวกัน ซึ่งแตกต่างจากอ็อบเจ็กต์สตริงที่เก็บไว้ใน String Constant Pool คุณยังสามารถพิสูจน์สิ่งนี้ด้วยตัวดำเนินการ ==; จะส่งกลับจริงหากมีการเปรียบเทียบวัตถุสองชิ้นที่มีที่อยู่ทางกายภาพเดียวกัน
public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}
ตอนนี้คุณสามารถเข้าใจสตริงใน Java ได้อย่างง่ายดาย
ในบทความนี้ คุณได้เรียนรู้ว่าสตริงใน Java แตกต่างกันอย่างไร วิธีการใช้สตริงใน Java การจัดการหน่วยความจำของสตริงใน Java และรายละเอียดที่สำคัญอื่นๆ เกี่ยวกับวิธีการทำงานของสตริง เพื่อทดสอบความเข้าใจของคุณ ทำไมไม่ลองเขียนโปรแกรม Java เพื่อเชื่อมสองสตริงเข้าด้วยกันล่ะ?
แบ่งปัน แบ่งปัน ทวีต อีเมล การเรียนรู้หลาม? นี่คือวิธีจัดการกับสตริงการใช้และจัดการสตริงใน Python อาจดูยาก แต่ก็ตรงไปตรงมา
อ่านต่อไป หัวข้อที่เกี่ยวข้อง- การเขียนโปรแกรม
- Java
Usman เป็นนักการตลาดเนื้อหาที่ช่วยธุรกิจหลายแห่งด้วยการเติบโตแบบออร์แกนิกบนแพลตฟอร์มดิจิทัล เขาชอบทั้งการเขียนโปรแกรมและการเขียน ซึ่งหมายความว่าการเขียนเชิงเทคนิคเป็นสิ่งที่เขาชอบมาก เมื่อไม่ทำงาน Usman สนุกกับการใช้เวลาดูรายการทีวี ติดตามคริกเก็ต และอ่านเกี่ยวกับการวิเคราะห์ข้อมูล
เพิ่มเติมจาก Usman Ghaniสมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก