ต่อไปนี้เป็นโปรแกรม Java เพื่อพิมพ์พีชคณิตทั้งหมดของสตริง -
ตัวอย่าง
public class Demo{ static void print_permutations(String my_str,String my_ans){ if (my_str.length() == 0){ System.out.print(my_ans + " "); return; } boolean my_arr[] = new boolean[26]; for (int i = 0; i < my_str.length(); i++){ char ch = my_str.charAt(i); String remaining_str = my_str.substring(0, i) + my_str.substring(i + 1); if (my_arr[ch - 'a'] == false) print_permutations(remaining_str, my_ans + ch); my_arr[ch - 'a'] = true; } } public static void main(String[] args){ String my_str = "hey"; System.out.println("The permutation of the string are :"); print_permutations(my_str, ""); } }
ผลลัพธ์
The permutation of the string are : hey hye ehy eyh yhe yeh
คลาสชื่อ Demo มีฟังก์ชันสแตติก 'print_permutations' ซึ่งจะตรวจสอบว่าสตริงว่างหรือไม่ และถ้าว่าง เอาต์พุตจะถูกพิมพ์ ตอนนี้อาร์เรย์บูลีนชื่อ 'my_arr' ถูกกำหนดด้วยขนาด 36 โดยที่ค่า 'เท็จ' จะถูกเก็บไว้ตามค่าเริ่มต้น เมื่อใดก็ตามที่มีการใช้ตัวอักษร ดัชนีในอาร์เรย์จะเปลี่ยนเป็น 'จริง'
วง 'for' ใช้เพื่อวนซ้ำความยาวของสตริง และตรวจสอบอักขระ ith ของสตริง ส่วนที่เหลือของสตริงที่ไม่มีอักขระ ith ถูกกำหนดให้กับสตริงชื่อ 'remaining_str' หากไม่ได้ใช้อักขระ การเรียกซ้ำของฟังก์ชันจะเกิดขึ้น มิฉะนั้น จะไม่มีการเรียกใช้ฟังก์ชัน ในฟังก์ชันหลัก จะมีการกำหนดสตริงและเรียกใช้ฟังก์ชันบนสตริงนี้