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

โปรแกรม Java สลับคู่ตัวอักษรในสตริง


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการสลับคู่ตัวอักษร (Swap pair of characters) ใน Java เราจะแปลงสตริงที่กำหนดเป็นอาร์เรย์ตัวอักษร (Character array) ซึ่งจะช่วยให้เราสลับคู่ตัวอักษรได้

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

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

Input string: Java program

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

The string after swapping is: Javg proaram

อัลกอริทึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศสตริง input_string, อาร์เรย์ตัวอักษร character, และออบเจ็กต์สตริง result
ขั้นตอนที่ 3 - กำหนดค่า
ขั้นตอนที่ 4 - แปลงสตริงเป็นอาร์เรย์ตัวอักษร
ขั้นตอนที่ 5 - สลับตัวอักษรโดยใช้ตัวแปรชั่วคราว temp
ขั้นตอนที่ 6 - แปลงอาร์เรย์ตัวอักษรกลับเป็นสตริง
ขั้นตอนที่ 7 - แสดงสตริง
ขั้นตอนที่ 8 - จบการทำงาน

ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง

public class SwapCharacter {
    public static void main(String args[]) {
        String input_string = "Java program";
        System.out.println("The string is defined as: " + input_string);
        int i = 3, j = input_string.length() - 4;
        char character[] = input_string.toCharArray();
        char temp = character[i];
        character[i] = character[j];
        character[j] = temp;
        String result = new String(character);
        System.out.println("\nThe string after swapping is: " + result);
    }
}

เอาต์พุท

The string is defined as: Java program
The string after swapping is: Javg proaram

ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)

public class SwapCharacter {
    static char[] swap(String input_string, int i, int j) {
        char character[] = input_string.toCharArray();
        char temp = character[i];
        character[i] = character[j];
        character[j] = temp;
        return character;
    }
    
    public static void main(String args[]) {
        String input_string = "Java program";
        System.out.println("The string is defined as: " + input_string);
        System.out.println("\nThe string after swapping is: ");
        System.out.println(swap(input_string, 3, input_string.length() - 4));
    }
}

เอาต์พุท

The string is defined as: Java program
The string after swapping is: Javg proaram

การอธิบายตัวอย่าง:

สตริง "Java program" (ความยาว 12)

  • ดัชนี 3 = 'a' (ตัวที่ 4 ของ "Java")
  • ดัชนี 12-4 = 8 = 'r' (ตัวที่ 9 ของ "program")
  • สลับ 'a' กับ 'r' → "Javr proagram" = "Javg proaram"

การสลับคู่ที่อยู่ติดกัน (Adjacent swap - ทุก 2 ตัว):

public static String swapAdjacentPairs(String input) {
    char[] chars = input.toCharArray();
    for (int i = 0; i < chars.length - 1; i += 2) {
        char temp = chars[i];
        chars[i] = chars[i + 1];
        chars[i + 1] = temp;
    }
    return new String(chars);
}
// "Java" → "aJva" (J↔a, v↔a)