Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java วนลูปเข้าถึงทุกตัวอักษรในสตริง


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการวนลูป (Iterate) เข้าถึงทุกตัวอักษร (Character) ในสตริง สตริงเป็นชนิดข้อมูลที่ประกอบด้วยตัวอักษรหนึ่งตัวขึ้นไป และล้อมรอบด้วยเครื่องหมายคำพูดคู่ (" ") Char เป็นชนิดข้อมูลที่ประกอบด้วยอักขระหรือตัวเลขหรืออักขระพิเศษ

ตัวอย่างการทำงาน

อินพุทตัวอย่าง:

The string is defined as: Java Program

เอาต์พุทที่คาดหวัง:

The characters in the string are: J, a, v, a, , P, r, o, g, r, a, m,

อัลกอริทึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศสตริงชื่อ input_string และตัวอักษรชื่อ temp
ขั้นตอนที่ 3 - กำหนดค่า
ขั้นตอนที่ 4 - วนลูปผ่านสตริง พิมพ์ตัวอักษรที่ดัชนี 'i' พร้อมช่องว่าง
ขั้นตอนที่ 5 - แสดงผลลัพธ์
ขั้นตอนที่ 6 - จบการทำงาน

ตัวอย่างที่ 1: ใช้ for-loop แบบดัชนี

public class Characters {
    public static void main(String[] args) {
        String input_string = "Java Program";
        System.out.println("The string is defined as: " + input_string);
        System.out.println("The characters in the string are: ");
        for(int i = 0; i < input_string.length(); i++) {
            char temp = input_string.charAt(i);
            System.out.print(temp + ", ");
        }
    }
}

เอาต์พุท

The string is defined as: Java Program
The characters in the string are: J, a, v, a, , P, r, o, g, r, a, m,

ตัวอย่างที่ 2: ใช้ for-each loop กับ toCharArray()

public class Main {
    public static void main(String[] args) {
        String input_string = "Java Program";
        System.out.println("The string is defined as: " + input_string);
        System.out.println("The characters in the string are: ");
        for(char temp : input_string.toCharArray()) {
            System.out.print(temp + ", ");
        }
    }
}

เอาต์พุท

The string is defined as: Java Program
The characters in the string are: J, a, v, a, , P, r, o, g, r, a, m,

วิธีอื่นๆ (Java 8+):

// ใช้ Stream API
input_string.chars().forEach(c -> System.out.print((char)c + ", "));
// หรือ
input_string.codePoints().forEach(c -> System.out.print(Character.toChars(c) + ", "));

// ใช้ String.split("") (แยกทุกตัวอักษร)
Arrays.stream(input_string.split("")).forEach(c -> System.out.print(c + ", "));

หมายเหตุ: toCharArray() สร้างอาร์เรย์ใหม่ (copy) ในขณะที่ charAt() เข้าถึงโดยตรง สำหรับสตริงยาว ใช้ charAt() จะประหยัดหน่วยความจำกว่า