Java การจัดการสตริงด้วย EXAMPLE

สตริงในคืออะไร Java?

สตริงในรูปแบบตัวอักษรคือชุดของอักขระ เฮ้ คุณบอกว่าอักขระ มันเป็นประเภทข้อมูลดั้งเดิมใช่ไหม Java- ใช่แล้ว ในแง่เทคนิค พื้นฐานเลย Java String นั้นเป็นอาร์เรย์ของอักขระ

ดังนั้นสตริงข้างบนของฉัน "ROSE” สามารถแสดงได้ดังต่อไปนี้ –

Java เชือก

ทำไมต้องใช้สตริง?

หน้าที่หลักอย่างหนึ่งของวิทยาการคอมพิวเตอร์สมัยใหม่คือการประมวลผลภาษามนุษย์

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

ในฐานะที่เป็น 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 วิธีการสตริง

ลองถามก 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!