Java การจัดการสตริงด้วย EXAMPLE
สตริงในคืออะไร Java?
สตริงในรูปแบบตัวอักษรคือชุดของอักขระ เฮ้ คุณบอกว่าอักขระ มันเป็นประเภทข้อมูลดั้งเดิมใช่ไหม Java- ใช่แล้ว ในแง่เทคนิค พื้นฐานเลย Java String นั้นเป็นอาร์เรย์ของอักขระ
ดังนั้นสตริงข้างบนของฉัน "ROSE” สามารถแสดงได้ดังต่อไปนี้ –
ทำไมต้องใช้สตริง?
หน้าที่หลักอย่างหนึ่งของวิทยาการคอมพิวเตอร์สมัยใหม่คือการประมวลผลภาษามนุษย์
สัญลักษณ์ภาษามีความสำคัญต่อความหมายและการตัดสินใจเช่นเดียวกับตัวเลขที่มีความสำคัญต่อคณิตศาสตร์ แม้ว่าผู้ใช้คอมพิวเตอร์อาจมองไม่เห็น แต่คอมพิวเตอร์ก็ประมวลผลภาษาในพื้นหลังได้อย่างแม่นยำและแม่นยำเช่นเดียวกับเครื่องคิดเลข กล่องโต้ตอบวิธีใช้จะให้คำแนะนำ เมนูจะมีตัวเลือกต่างๆ และการแสดงข้อมูลจะแสดงสถานะ ข้อผิดพลาด และการเปลี่ยนแปลงภาษาแบบเรียลไทม์
ในฐานะที่เป็น Java โปรแกรมเมอร์ หนึ่งในเครื่องมือหลักของคุณสำหรับการจัดเก็บและประมวลผลภาษาก็คือคลาส String
ตัวอย่างไวยากรณ์สตริง
ทีนี้ มาดูไวยากรณ์กันดีกว่า หลังจากทั้งหมด เราต้องเขียนสิ่งนี้ลงไป Java รหัสใช่ไหม
String คืออาร์เรย์ของอักขระที่แสดงเป็น:
//String is an array of characters char[] arrSample = {'R', 'O', 'S', 'E'}; String strSample_1 = new String (arrSample);
ในแง่เทคนิค String ถูกกำหนดไว้ดังต่อไปนี้ในตัวอย่างข้างต้น-
= new (argument);
ตอนนี้เราไม่สามารถเขียนสตริงของเราเป็นอาร์เรย์ได้เสมอไป ดังนั้นเราจึงสามารถกำหนด String ได้ Java ดังต่อไปนี้:
//Representation of String String strSample_2 = "ROSE";
ในแง่เทคนิค ข้อมูลข้างต้นจะแสดงเป็น:
= ;
เค้ก คลาสสตริง Java ขยาย คลาสอ็อบเจ็กต์
การต่อสตริง:
การต่อข้อมูลคือการรวมสตริงตั้งแต่สองตัวขึ้นไปเข้าด้วยกัน
ดูภาพด้านล่าง -
เรามีสองสาย str1 = “Rock” และ str2 = “Star”
ถ้าเรารวมสองสายนี้เข้าด้วยกัน เราก็ควรได้ผลลัพธ์เป็น str3= “RockStar”
ตรวจสอบข้อมูลโค้ดด้านล่าง และจะอธิบายสองวิธีในการต่อสตริง
อันดับแรกคือการใช้ “เชื่อม” วิธีการของคลาส String และวิธีที่สองคือการใช้ตัวดำเนินการเลขคณิต “+” ทั้งสองวิธีให้ผลลัพธ์เหมือนกัน
public class Sample_String{ public static void main(String[] args){ //String Concatenation String str1 = "Rock"; String str2 = "Star"; //Method 1 : Using concat String str3 = str1.concat(str2); System.out.println(str3); //Method 2 : Using "+" operator String str4 = str1 + str2; System.out.println(str4); } }
ผลลัพธ์ที่คาดหวัง:
RockStar RockStar
สำคัญ Java วิธีการสตริง:
ลองถามก Java รวบรวมคำถามสองสามข้อและดูว่าจะสามารถตอบคำถามเหล่านี้ได้หรือไม่:
วิธีสตริง "ความยาว"
คุณจะกำหนดความยาวของสตริงที่กำหนดได้อย่างไร ฉันได้ให้เมธอดที่เรียกว่า "length" ไว้แล้ว ใช้กับสตริงที่คุณต้องการหาความยาว
public class Sample_String{ public static void main(String[] args){ //Our sample string for this tutorial String str_Sample = "RockStar"; //Length of a String System.out.println("Length of String: " + str_Sample.length());}}
ผลลัพธ์ที่คาดหวัง:
Length of String: 8
สตริงวิธี "indexOf"
ถ้ารู้ความยาวแล้วจะรู้ได้อย่างไรว่าตัวละครตัวไหนอยู่ในตำแหน่งไหน? สรุปจะหาดัชนีของตัวละครได้อย่างไร?
คุณตอบตัวเองแล้วเพื่อน มีวิธีการ "indexOf" ที่จะช่วยคุณระบุตำแหน่งของอักขระเฉพาะที่คุณระบุ
public class Sample_String{ public static void main(String[] args){//Character at position String str_Sample = "RockStar"; System.out.println("Character at position 5: " + str_Sample.charAt(5)); //Index of a given character System.out.println("Index of character 'S': " + str_Sample.indexOf('S'));}}
ผลลัพธ์ที่คาดหวัง:
Character at position 5: t Index of character 'S': 4
สตริงวิธี "charAt"
คล้ายกับคำถามข้างต้น เมื่อพิจารณาจากดัชนีแล้ว ฉันจะรู้จักตัวละครในตำแหน่งนั้นได้อย่างไร
ง่ายอีกแล้ว!! ใช้เมธอด “charAt” และระบุดัชนีที่มีตัวละครที่คุณต้องการค้นหา
public class Sample_String{ public static void main(String[] args){//Character at position String str_Sample = "RockStar"; System.out.println("Character at position 5: " + str_Sample.charAt(5));}}
ผลลัพธ์ที่คาดหวัง:
Character at position 5: t
สตริงวิธี "CompareTo"
ฉันต้องการตรวจสอบว่า String ที่สร้างขึ้นโดยวิธีการบางอย่างมีค่าเท่ากับสิ่งที่ฉันต้องการตรวจสอบหรือไม่? ฉันจะเปรียบเทียบสองสตริงได้อย่างไร
ใช้เมธอด “compareTo” และระบุสตริงที่คุณต้องการเปรียบเทียบ
ใช้ “compareToIgnoreCase” ในกรณีที่คุณไม่ต้องการให้ผลลัพธ์เป็นแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
ผลลัพธ์จะมีค่า 0 หากสตริงอาร์กิวเมนต์เท่ากับสตริงนี้ ค่าน้อยกว่า 0 ถ้าสตริงนี้มีพจนานุกรมน้อยกว่าอาร์กิวเมนต์สตริง และค่าที่มากกว่า 0 หากสตริงนี้มีค่ามากกว่าอาร์กิวเมนต์สตริงตามพจนานุกรม
public class Sample_String{ public static void main(String[] args){//Compare to a String String str_Sample = "RockStar"; System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar")); //Compare to - Ignore case System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}
ผลลัพธ์ที่คาดหวัง:
Compare To 'ROCKSTAR': -32 Compare To 'ROCKSTAR' - Case Ignored: 0
สตริงวิธีการ "บรรจุ"
ฉันรู้บางส่วนว่าสตริงควรมีอะไรบ้าง ฉันจะยืนยันได้อย่างไรว่าสตริงมีลำดับอักขระที่ฉันระบุ
ใช้วิธีการ “มี” และระบุอักขระที่คุณต้องการตรวจสอบ
คืนสินค้า จริง ถ้าหากสตริงนี้มีลำดับของค่าถ่านที่ระบุ
public class Sample_String{ public static void main(String[] args){ //Check if String contains a sequence String str_Sample = "RockStar"; System.out.println("Contains sequence 'tar': " + str_Sample.contains("tar"));}}
ผลลัพธ์ที่คาดหวัง:
Contains sequence 'tar': true
สตริงวิธีการ "endsWith"
ฉันจะยืนยันได้อย่างไรว่า String ลงท้ายด้วยส่วนต่อท้ายเฉพาะ คุณกลับตอบไปแบบนั้น ใช้เมธอด "endsWith" และระบุส่วนต่อท้ายในอาร์กิวเมนต์
คืนสินค้า จริง ถ้าลำดับอักขระที่แสดงโดยอาร์กิวเมนต์เป็นส่วนต่อท้ายของลำดับอักขระที่แสดงโดยอ็อบเจ็กต์นี้
public class Sample_String{ public static void main(String[] args){ //Check if ends with a particular sequence String str_Sample = "RockStar"; System.out.println("EndsWith character 'r': " + str_Sample.endsWith("r"));}}
ผลลัพธ์ที่คาดหวัง:
EndsWith character 'r': true
สตริงวิธี "replaceAll" & "replaceFirst"
ฉันต้องการแก้ไข String ของฉันในหลาย ๆ ที่และแทนที่ String หลายส่วนของ?
Java สตริงแทนที่แทนที่ทั้งหมดและแทนที่วิธีแรก คุณสามารถระบุส่วนของสตริงที่คุณต้องการแทนที่และสตริงการแทนที่ในอาร์กิวเมนต์ได้
public class Sample_String{ public static void main(String[] args){//Replace Rock with the word Duke String str_Sample = "RockStar"; System.out.println("Replace 'Rock' with 'Duke': " + str_Sample.replace("Rock", "Duke"));}}
ผลลัพธ์ที่คาดหวัง:
Replace 'Rock' with 'Duke': DukeStar
เชือก Java “ตัวพิมพ์เล็ก” & Java วิธี "ตัวพิมพ์ใหญ่"
ฉันต้องการให้สตริงทั้งหมดของฉันแสดงเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่?
เพียงใช้เมธอด “toLowercase()” หรือ “ToUpperCase()” กับสตริงที่ต้องการแปลง
public class Sample_String{ public static void main(String[] args){//Convert to LowerCase String str_Sample = "RockStar"; System.out.println("Convert to LowerCase: " + str_Sample.toLowerCase()); //Convert to UpperCase System.out.println("Convert to UpperCase: " + str_Sample.toUpperCase());}}
ผลลัพธ์ที่คาดหวัง:
Convert to LowerCase: rockstar Convert to UpperCase: ROCKSTAR
จุดสำคัญที่ควรทราบ:
- String เป็นคลาสสุดท้าย- คือเมื่อสร้างแล้วค่าจะไม่สามารถเปลี่ยนแปลงได้ ดังนั้นวัตถุ String จึงเรียกว่าไม่เปลี่ยนรูป
- เค้ก Java Virtual Machine (JVM) สร้างตำแหน่งหน่วยความจำโดยเฉพาะสำหรับสตริงที่เรียกว่า สตริงคงที่พูล- นั่นเป็นสาเหตุที่ทำให้ String สามารถเริ่มต้นได้โดยไม่ต้องใช้คีย์เวิร์ด 'ใหม่'
- คลาสสตริงตกอยู่ภายใต้ java.lang.String ลำดับชั้น- แต่ไม่จำเป็นต้องนำเข้าคลาสนี้ Java แพลตฟอร์มให้พวกเขาโดยอัตโนมัติ
- เชือก การอ้างอิงสามารถแทนที่ได้ แต่จะไม่ลบเนื้อหา- กล่าวคือถ้า
สตริง h1 = “สวัสดี”;
h1 = “สวัสดี”+”โลก”;
จากนั้นสตริง "สวัสดี" จะไม่ถูกลบ มันแค่สูญเสียที่จับ
- การอ้างอิงหลายรายการ สามารถใช้กับ String เดียวกันได้ แต่จะเป็นเช่นนั้น เกิดขึ้นในที่เดียวกัน- กล่าวคือถ้า
สตริง h1 = “สวัสดี”;
สตริง h2 = “สวัสดี”;
สตริง h3 = “สวัสดี”;
จากนั้นจะมีการสร้างพูลเดียวสำหรับ String “hello” ในหน่วยความจำโดยมีการอ้างอิง 3 รายการคือ h1,h2,h3
- ถ้า หมายเลขถูกยกมาใน ” “ แล้วมัน กลายเป็นสตริงไม่ใช่ตัวเลขอีกต่อไป นั่นหมายความว่าถ้า
สตริง S1 =”ตัวเลขคือ: “+ “123”+”456″;
ระบบออก.println(S1);
จากนั้นมันจะพิมพ์: หมายเลขคือ: 123456
หากการเริ่มต้นเป็นดังนี้:
สตริง S1 = “ตัวเลขคือ: “+(123+456);
System.out.println(S1);
จากนั้นมันจะพิมพ์: หมายเลขคือ:579
นั่นคือทั้งหมดเพื่อ Strings!