สิ่งที่คุณต้องรู้เกี่ยวกับการใช้สตริงใน Java

สิ่งที่คุณต้องรู้เกี่ยวกับการใช้สตริงใน Java

เมื่อคุณเริ่มเรียนรู้ 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 Ghani(4 บทความที่ตีพิมพ์)

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

เพิ่มเติมจาก Usman Ghani

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก