"คุณคิดอย่างไร Amigo คลาส Java ที่ได้รับความนิยมสูงสุดรองจาก int คืออะไร"

“คุณสปอยล์ชื่อบทเรียนให้ฉันแล้ว เอลลี นี่มันString!”

"แท้จริงแล้วมันเป็นการสปอยล์Stringใช้ได้ทุกที่ มันมีวิธีการที่มีประโยชน์มากมายที่คุณควรรู้ไว้

" Stringคลาสเป็นคลาสเดียวนอกเหนือจากประเภทดั้งเดิมที่สามารถใช้ตัวอักษรในswitchคำสั่งได้ คอมไพเลอร์จัดการการเติมสตริงและอ็อบเจกต์สตริงด้วยวิธีพิเศษ อ็อบStringเจกต์จะถูกจัดเก็บในหน่วยความจำในลักษณะพิเศษ โดยพื้นฐานแล้วStringคลาสเป็นคลาสมาก ชั้นพิเศษ

"นอกจากนี้Stringคลาสยังมีคลาสตัวช่วยมากมายที่มีจุดประสงค์เพื่อทำให้การทำงานกับสตริงใน Java ง่ายขึ้น เมื่อคุณเรียนรู้ทั้งหมดนี้ หลายสิ่งหลายอย่างจะง่ายขึ้นมากสำหรับคุณที่จะทำ"

"ฉันรอไม่ไหวแล้ว"

"เราจะเริ่มจากแก่นแท้ของระบบนิเวศนี้ นั่นคือการจัดระเบียบของStringคลาส โครงสร้างของคลาสStringนั้นเรียบง่ายมาก ข้างในเป็นอาร์เรย์อักขระ ( chararray) ที่เก็บอักขระทั้งหมดของสตริง สำหรับ ตัวอย่าง นี่คือวิธีจัดเก็บคำว่า 'สวัสดี':

โครงสร้างของคลาสสตริง

มันสำคัญ.

จริงๆ แล้ว มันไม่ถูกต้องเสียทีเดียว เนื่องจากStringคลาสมีความสำคัญมาก จึงใช้การปรับแต่งจำนวนมาก และข้อมูลจึงถูกจัดเก็บไว้ภายในไม่ใช่เป็นอาร์เรย์อักขระ แต่เป็นอาร์เรย์แบบไบต์

เมธอดของคลาสสตริง

คลาส นี้Stringมีเมธอดมากมาย: มีคอนสตรัคเตอร์ 18 ตัวเท่านั้น! ดังนั้นด้านล่างฉันจะแสดงเฉพาะรายการที่ใช้บ่อยที่สุด:

วิธีการ คำอธิบาย
int length()
ส่งกลับจำนวนอักขระในสตริง
boolean isEmpty()
ตรวจสอบว่าสตริงเป็นสตริงว่างหรือไม่
boolean isBlank()
ตรวจสอบว่าสตริงมีเฉพาะอักขระช่องว่าง: ช่องว่าง แท็บ ขึ้นบรรทัดใหม่ ฯลฯ
char charAt(int index)
ส่งกลับอักขระที่ตำแหน่งดัชนีในสตริง
char[] toCharArray()
ส่งกลับอาร์เรย์ของอักขระ (สำเนา) ที่ประกอบขึ้นเป็นสตริง
byte[] getBytes()
แปลงสตริงเป็นชุดของไบต์และส่งกลับอาร์เรย์ของไบต์
String[] split(String regex)
แยกสตริงออกเป็นหลายสตริงย่อย
String join(CharSequence delimiter, elements)
รวมสตริงย่อยหลายรายการเข้าด้วยกัน
String intern()
วางสตริงลงในกลุ่มสตริง

"นั่นดูดีมาก!"

"มาเขียนโปรแกรมที่แปลงเส้นทางไฟล์จากสไตล์ Unix เป็นสไตล์ Windows กันเถอะ Unix ใช้อักขระ/เพื่อแยกโฟลเดอร์ ในขณะที่ Windows ใช้\อักขระ

วิธีแก้ปัญหา 1.การใช้charอาร์เรย์

รหัส หมายเหตุ
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
สร้างออบเจกต์สแกนเนอร์
อ่านบรรทัดจากคอนโซล

แปลงสตริงเป็นอาร์เรย์อักขระ วน
ซ้ำอักขระ
ถ้าอักขระคือ/ให้
แทนที่\ด้วย อย่าลืมเกี่ยวกับการหลบหนี

สร้างสตริงใหม่ตามอาร์เรย์อักขระ
แสดงสตริง

แนวทางที่ 2.การใช้split()และjoin()วิธีการ:

รหัส หมายเหตุ
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String array[] = path.split("\\/");


String result = String.join("\\", array);


System.out.println(result);
สร้างวัตถุสแกนเนอร์
อ่านบรรทัดจากคอนโซล

แปลงสตริงเป็นอาร์เรย์ของสตริง อักขระ นี้/ถูกใช้เป็นตัวคั่น เชื่อม
ต่อสตริงทั้งหมดในอาร์เรย์ของสตริง ใช้\เป็นตัวคั่น (เรามองว่าหนี)

แสดงสตริง

แนวทางที่ 3.โดยใช้replace(char oldChar, char newChar)วิธีการ:

รหัส หมายเหตุ
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
สร้างวัตถุสแกนเนอร์
อ่านบรรทัดจากคอนโซล

เพียงแทนที่อักขระหนึ่งตัวด้วยอักขระอื่น
(ตัวที่สองใช้ Escape)
แสดงสตริง

"ฉันชอบวิธีที่สามมากที่สุด แต่ฉันจะฝึกทั้งสามอย่าง"

"ทำได้ดีมาก Amigo ฉันเห็นว่าคุณไม่อดทนที่จะนำความรู้ใหม่ไปปฏิบัติ บทเรียนจบลงแล้ว"