บ่อยครั้งที่โครงสร้างข้อมูลแรกที่โปรแกรมเมอร์มือใหม่คุ้นเคยคืออาร์เรย์ นั่นเป็นเพราะว่าอาร์เรย์นั้นค่อนข้างง่ายต่อการเรียนรู้ อาร์เรย์หนึ่งมิติคือลำดับที่ประกอบด้วยจำนวนเซลล์คงที่ซึ่งสามารถจัดเก็บข้อมูลได้ ในกรณีของภาษา Java คุณสามารถเก็บข้อมูลได้เพียงประเภทเดียวในอาร์เรย์ กล่าวอีกนัยหนึ่งอาร์เรย์ใน Java นั้นเป็นเนื้อเดียวกัน เซลล์อาร์เรย์สามารถมีวัตถุประเภทใดก็ได้ คุณสามารถใส่วัตถุประเภทใดก็ได้ พื้นฐานหรือวัตถุ ลงในอาร์เรย์ วันนี้เราจะมาดูอาร์เรย์สตริงในภาษา Java ซึ่งก็คืออาร์เรย์ ซึ่งแต่ละองค์ประกอบจะเป็นสตริง เราจะทราบวิธีการประกาศ Java String Array และวิธีใช้งาน
วิธีการประกาศและเริ่มต้น String Array
คุณสามารถประกาศและเริ่มต้น อาร์เรย์ Stringใน Java ได้หลายวิธี เช่นในโค้ดด้านล่าง:String[] myArray = {"value1", "value2", "value3"};
ที่นี่ก่อนอื่นเราจะประกาศตัวแปรmyArrayประเภทString[ ] หลังจากนั้น เราเริ่มต้นอาร์เรย์ด้วยค่าสตริงสามค่าที่อยู่ในเครื่องหมายปีกกา หรือคุณสามารถมี การประกาศอาร์เรย์ Stringและการเริ่มต้นในบรรทัดแยกกัน:
String[] myArray; // String array declaration
myArray = new String[] {"value1", "value2", "value3"}; // initialize the array
ที่นี่เราได้ผลลัพธ์เหมือนกับข้อมูลโค้ดแรก แต่แยกการประกาศและการเริ่มต้นออกเป็นสองขั้นตอน นอกจากนี้ คุณยังสามารถเริ่มต้นอาร์เรย์ด้วยขนาดเท่านั้นได้ เช่นเดียวกับด้านล่างนี้:
String[] myArray = new String[5];
ที่นี่คุณสร้าง อาร์เรย์ StringและระบุขนาดของString Array แต่คุณไม่ได้ระบุค่าเริ่มต้นใดๆ จากนั้นคุณสามารถกำหนดค่าให้กับอาร์เรย์โดยใช้การวนซ้ำหรือโดยการระบุค่าทีละค่า โปรดทราบว่าในทุกกรณี คุณต้องระบุประเภทของอาร์เรย์ (ในกรณีนี้คือString ) ในขณะที่ประกาศตัวแปร
วิธีวนซ้ำผ่านอาร์เรย์ String
ใน Java คุณสามารถวนซ้ำผ่าน อาร์เรย์ Stringโดยใช้การวนซ้ำ อาจเป็นสำหรับหรือการก่อสร้าง foreach มาดูตัวอย่างที่ใช้ลูปทั้งสองประเภทกัน:public class IterateStringArrayExample {
public static void main(String[] args) {
String[] stringArray = {"violin", "viola", "cello", "double bass"};
// Using a for loop
for (int i = 0; i < stringArray.length; i++) {
String s = stringArray[i];
System.out.print(s + " ");
}
System.out.println();
// Using a foreach loop
for (String s : stringArray) {
System.out.print(s + " ");
}
System.out.println();
}
}
ขั้นแรกเราสร้าง อาร์เรย์ Stringชื่อ stringArray โดยมีสี่องค์ประกอบ (เครื่องดนตรีเครื่องสาย) จากนั้น ทั้งสองลูปจะวนซ้ำแต่ละองค์ประกอบของอาร์เรย์สตริงและพิมพ์ไปยังคอนโซล foreach loop เป็นวิธีที่กระชับกว่าในการวนซ้ำผ่านอาร์เรย์ แต่ for loop จะมีประโยชน์หากคุณต้องการเข้าถึงดัชนีของแต่ละองค์ประกอบ ผลลัพธ์ของโปรแกรมนี้จะเป็น:
ไวโอลิน วิโอลา เชลโล ดับเบิลเบส ไวโอลิน วิโอลา เชลโล ดับเบิลเบส
วิธีเพิ่มองค์ประกอบใหม่ให้กับ Array
คุณไม่สามารถเพิ่มองค์ประกอบใหม่ให้กับอาร์เรย์ใน Java ได้ อย่างไรก็ตาม Java มีเทคนิคพิเศษสำหรับมัน หากคุณมีอาร์เรย์ของสตริงและจำเป็นต้องเพิ่มสตริงใหม่ต่อท้ายอาร์เรย์ ให้ใช้เมธอดArrays.copyOf เมธอดนี้จะสร้างอาร์เรย์ใหม่โดยมีองค์ประกอบพิเศษหนึ่งองค์ประกอบ จากนั้นจึงเพิ่มองค์ประกอบใหม่ต่อท้ายอาร์เรย์ใหม่ นี่คือตัวอย่าง://add string Array and a new element
String[] oldArray = {"violin", "viola", "cello"};
String newElement = "double bass";
String[] newArray = Arrays.copyOf(oldArray, oldArray.length + 1);
newArray[newArray.length - 1] = newElement;
ที่นี่ เมธอด Arrays.copyOfจะสร้างอาร์เรย์ใหม่ชื่อnewArrayโดยมีความยาวมากกว่า oldArray หนึ่งค่า วิธีการเพิ่มnewElementที่ส่วนท้ายของnewArray โดยกำหนดให้กับองค์ประกอบสุดท้ายของnewArray อาร์เรย์ใน Java มีความยาวคงที่ ดังนั้นคุณจะไม่สามารถเพิ่มหรือลบองค์ประกอบออกจากอาร์เรย์ได้เมื่อสร้างขึ้นแล้ว หากต้องการเพิ่มหรือลบองค์ประกอบออกจากคอลเลกชันแบบไดนามิก คุณควรใช้โครงสร้างข้อมูลอื่น ตัวอย่าง เช่นรายการหรือแผนที่
วิธีจัดเรียงองค์ประกอบใน String Array
แน่นอนว่า หากคุณสนใจแบบฝึกหัดการเขียนโปรแกรมที่ดี คุณสามารถเขียนอัลกอริธึมการเรียงลำดับสำหรับขั้นตอนการเรียงลำดับได้ อย่างไรก็ตาม ในการทำงานจริง การใช้ เมธอดArrays.sort()จะง่ายกว่ามาก นี่คือตัวอย่าง:import java.util.Arrays;
public class SortStringArrayExample {
public static void main(String[] args) {
String[] stringArray = {"violin", "viola", "cello", "double bass"};
// Sorting the array
Arrays.sort(stringArray);
// Printing the sorted array
for (String s : stringArray) {
System.out.print(s + " ");
}
}
}
ที่นี่ก่อนอื่นเราสร้าง อาร์เรย์ Stringชื่อ stringArray โดยมีสี่องค์ประกอบ จากนั้นเราจะเรียก เมธอด Arrays.sort()เพื่อจัดเรียงองค์ประกอบในอาร์เรย์จากน้อยไปหามาก สุดท้าย เราวนซ้ำอาร์เรย์ที่เรียงลำดับโดยใช้for-each loop และพิมพ์แต่ละองค์ประกอบไปยังคอนโซล ผลลัพธ์ของโปรแกรมนี้อยู่ถัดไป:
เชลโล ดับเบิ้ลเบส วิโอลา ไวโอลิน
อย่างที่คุณเห็น วิธีการเรียงลำดับองค์ประกอบในstringArrayตามลำดับตัวอักษร
วิธีค้นหาสตริงเฉพาะในอาร์เรย์ String
หากต้องการค้นหาString ที่จำเป็น ใน อาร์เรย์ Stringใน Java คุณสามารถใช้การวนซ้ำเพื่อวนซ้ำแต่ละองค์ประกอบอาร์เรย์และเปรียบเทียบกับStringที่คุณกำลังค้นหา นี่คือตัวอย่างโปรแกรม:public class SearchString {
public static void main(String[] args) {
String[] stringArray = {"violin", "viola", "cello", "double bass"};
String searchString1 = "cello";
String searchString2 = "piano";
search(stringArray, searchString1);
search(stringArray, searchString2);
}
public static boolean search (String[] myArray, String myString){
boolean found = false;
// Loop through the array to search for the string
for (String s : myArray) {
if (s.equals(myString)) {
found = true;
break;
}
}
// Print the result
if (found) {
System.out.println(myString + " found in the array.");
} else {
System.out.println(myString + " not found in the array.");
} return found;
}
}
ที่นี่เรากำลังสร้างวิธีการที่มีสองอาร์กิวเมนต์ อาร์เรย์และสตริงที่จะค้นหา เราสร้างบูลีน 'found' เพื่อติดตามว่าเราพบString หรือ ไม่ เป็นค่าที่พบที่เมธอดจะส่งกลับ จากนั้นเราใช้for-each loop เพื่อวนซ้ำแต่ละองค์ประกอบอาร์เรย์ เราใช้ เมธอด เท่ากับ()ในลูปเพื่อเปรียบเทียบองค์ประกอบปัจจุบันกับสตริงการค้นหา หากเมธอดพบว่าตรงกัน เราจะตั้งค่าให้เป็นจริงและใช้คำสั่ง break เพื่อแยกออกจากลูปตั้งแต่เนิ่นๆ สุดท้าย เราจะพิมพ์ผลลัพธ์ขึ้นอยู่กับว่าสิ่งที่พบเป็นจริงหรือเท็จ ใน เมธอด หลักเราเรียกเมธอดการค้นหาสองครั้ง โดยที่Stringอยู่ในอาร์เรย์และอันที่ไม่ใช่ ผลลัพธ์ของโปรแกรมนี้อยู่ถัดไป:
เชลโลที่พบในอาร์เรย์ ไม่พบเปียโนในอาร์เรย์
วิธีแปลง String Array เป็น String
คุณสามารถใช้ เมธอด String.join()เพื่อแปลง อาร์เรย์ Stringเป็นStringใน Java เมธอดนี้ส่งคืนสตริงที่ต่อกันด้วยตัวคั่นที่กำหนด ตัวคั่นจะถูกคัดลอกสำหรับแต่ละองค์ประกอบในเมธอด String join() นี่คือตัวอย่าง:String[] myArray = {"value1", "value2", "value3"};
String joinedString = String.join(", ", myArray);
System.out.println(joinedString);
ผลลัพธ์มีดังต่อไปนี้:
ค่า1, ค่า2, ค่า3
ขั้นแรก เราประกาศอาร์เรย์สตริงmyArrayด้วยค่าสตริงสามค่า จากนั้นเราใช้ เมธอด String.join()เพื่อรวมองค์ประกอบอาร์เรย์ทั้งหมดให้เป็นสตริงเดียว อาร์กิวเมนต์แรกของString.join()คือตัวคั่นที่คุณต้องการใช้ระหว่างแต่ละองค์ประกอบอาร์เรย์ เราใช้ "," (ลูกน้ำตามด้วยช่องว่าง) เป็นตัวคั่น อาร์กิวเมนต์ที่สองคืออาร์เรย์ที่คุณต้องการรวม สุดท้ายนี้ เรากำหนดสตริงผลลัพธ์ให้กับตัวแปรjoinStringและพิมพ์ลงในคอนโซล
GO TO FULL VERSION