โค้ดยิม/หลักสูตรจาวา/โมดูล 1/โครงสร้างของคลาสสตริง

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

ระดับ, บทเรียน
มีอยู่

1. โครงสร้างของStringชั้นเรียน

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

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

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

อาร์เรย์ของอักขระ

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

โครงสร้างของคลาสสตริง
สำคัญ!

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


2. วิธีการของ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()
วางสตริงลงในstring pool.

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับคอนสตรัคเตอร์ ได้ในบทความJava Constructors

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

โซลูชันที่ 1:ใช้อาร์เรย์ถ่าน

รหัส หมายเหตุ
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)
แสดงสตริง
3
งาน
Java Syntax,  ระดับบทเรียน
ล็อค
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ