Java คือ ตอนที่ 3 : อาร์เรย์ (Arrays) และสตริง (Strings)

  1. อาร์เรย์ (Arrays) ในภาษาจาวา
  2. สตริง (Strings) ในภาษาจาวา
  3. กรณีการใช้งานจริง: การสร้างแอพพยากรณ์อากาศ

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

1. อาร์เรย์ (Arrays) ในภาษาจาวา

อาร์เรย์เป็นรากฐานที่สำคัญของ Java มีวิธีจัดเก็บตัวแปรประเภทเดียวกันหลายตัวในโครงสร้างข้อมูลเดียว ทำให้จำเป็นสำหรับแอปพลิเคชันที่เกี่ยวข้องกับการรวบรวมข้อมูล

  • Array Basics : อาร์เรย์ใน Java เป็นโครงสร้างข้อมูลที่มีขนาดคงที่และเป็นเนื้อเดียวกัน ซึ่งสามารถเก็บองค์ประกอบของประเภทข้อมูลเฉพาะ (เช่น int, float, char ฯลฯ) หรืออ็อบเจกต์ของคลาส ขนาดถูกกำหนด ณ เวลาที่สร้างและไม่สามารถเปลี่ยนแปลงได้หลังจากนั้น แต่ละรายการในอาร์เรย์เรียกว่าองค์ประกอบ และองค์ประกอบเหล่านี้เข้าถึงได้โดยใช้ดัชนีซึ่งเริ่มต้นที่ 0
int[] numbers = new int[5];  // declares an array of integers with a size of 5
numbers[0] = 1;  // assigns the value 1 to the first element in the array
  • อาร์เรย์หลายมิติ (Multidimensional Arrays) : อาร์เรย์ยังสามารถเป็นแบบหลายมิติ โดยพื้นฐานแล้วเป็นอาร์เรย์ของอาร์เรย์ ซึ่งมีประโยชน์สำหรับการสร้างโครงสร้าง เช่น เมทริกซ์หรือตาราง ตัวอย่างเช่น สามารถแสดงอาร์เรย์ 2 มิติเป็นตารางที่มีแถวและคอลัมน์
int[][] matrix = new int[5][5];  // declares a 2D array with 5 rows and 5 columns
matrix[0][0] = 1;  // assigns the value 1 to the first cell in the grid
  • การจัดการอาร์เรย์ (Array Manipulation) : เมื่อสร้างอาร์เรย์แล้ว คุณสามารถดำเนินการหลายอย่าง รวมทั้งการอ่านและแก้ไของค์ประกอบ การค้นหาความยาวของอาร์เรย์ และการวนซ้ำองค์ประกอบต่างๆ

2. สตริง (Strings) ในภาษาจาวา

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

  • ข้อมูลพื้นฐานเกี่ยวกับสตริง : คุณสามารถสร้างสตริงใน Java โดยใช้สตริงตามตัวอักษรหรือคีย์เวิร์ดใหม่
String str1 = "Hello, World!";  // String literal
String str2 = new String("Hello, World!");  // using 'new' keyword

ความแตกต่างระหว่างสองแนวทางนี้มีความละเอียดอ่อนแต่มีนัยสำคัญ วิธีแรกใช้ประโยชน์จากพูลค่าคงที่ของสตริงของ Java ซึ่งสามารถช่วยประหยัดหน่วยความจำได้หากใช้ค่าสตริงเดียวกันหลายครั้ง

  • การจัดการสตริง (String Manipulation) : คลาสสตริงมีวิธีการมากมายสำหรับการทำงานกับข้อความ รวมถึงการดึงความยาวของสตริง ( length()) การเปรียบเทียบสตริงสองสตริง ( equals(), compareTo()) การแปลงสตริงเป็นตัวพิมพ์ใหญ่หรือเล็ก ( toUpperCase(), toLowerCase()) และอื่นๆ อีกมากมาย
String name = "Java Programming";
int length = name.length();  // returns 16
String upper = name.toUpperCase();  // returns "JAVA PROGRAMMING"

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

3. กรณีการใช้งานจริง: การสร้างแอพพยากรณ์อากาศ

ตอนนี้เราเข้าใจอาร์เรย์และสตริงแล้ว เรามาทำแอพสภาพอากาศอย่างง่ายที่ใช้ประโยชน์จากประเภทข้อมูลเหล่านี้

แอปนี้จะรักษาอาร์เรย์ของอุณหภูมิสำหรับสัปดาห์และให้ฟังก์ชันพื้นฐานบางอย่าง เช่น การดึงข้อมูลอุณหภูมิสำหรับวันใดวันหนึ่ง การคำนวณอุณหภูมิเฉลี่ย และการกำหนดวันที่หนาวที่สุดและร้อนที่สุด

  • การจัดเก็บอุณหภูมิรายสัปดาห์ : เราจะใช้อาร์เรย์หนึ่งมิติเพื่อเก็บอุณหภูมิรายวัน
int[] temps = {70, 75, 72, 73, 68, 74, 71};
  • การดึงข้อมูลอุณหภูมิสำหรับวัน : ทำได้ง่ายเพียงแค่เข้าถึงอาร์เรย์ที่ดัชนีเฉพาะ โปรดจำไว้ว่าดัชนีอาร์เรย์เริ่มต้นที่ 0 ดังนั้นวันจันทร์จะสอดคล้องกับดัชนี 0 วันอังคารถึงดัชนี 1 และอื่นๆ
int mondayTemp = temps[0];  // retrieves Monday's temperature
  • การคำนวณอุณหภูมิเฉลี่ย : ที่นี่ เราจะต้องวนซ้ำผ่านอาร์เรย์ รวมอุณหภูมิทั้งหมด แล้วหารด้วยความยาวของอาร์เรย์
int total = 0;
for (int i = 0; i < temps.length; i++) {
    total += temps[i];
}
double average = (double) total / temps.length;
  • การกำหนดวันที่หนาวเย็นที่สุดและวันที่ร้อนที่สุด : เราสามารถหาสิ่งเหล่านี้ได้โดยการวนซ้ำผ่านอาร์เรย์และรักษาตัวแปรที่มีอุณหภูมิที่เย็นที่สุดและร้อนที่สุด
int hottest = temps[0];
int coldest = temps[0];
for (int i = 1; i < temps.length; i++) {
    if (temps[i] > hottest) {
        hottest = temps[i];
    }
    if (temps[i] < coldest) {
        coldest = temps[i];
    }
}

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

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


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

ตัวอย่างเช่น แอปอีคอมเมิร์ซอาจใช้อาร์เรย์เพื่อจัดเก็บสินค้าในตะกร้าสินค้าของผู้ใช้ และสตริงเพื่อเก็บรายละเอียดผู้ใช้และคำอธิบายสินค้า แอปเกมสามารถใช้อาร์เรย์ 2 มิติเพื่อแสดงบอร์ดเกมและสตริงสำหรับชื่อผู้เล่น สถานะของเกม และข้อความในเกม

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


Java คืออะไร

Java คือ ตอนที่ 2 : โฟลว์การควบคุม (Control Flow)
Java คือ ตอนที่ 4 : เมธอด (Methods) และฟังก์ชัน (Functions)