เครื่องมือกลับข้อความ: กลับข้อความและพลิกอักขระทันที
เครื่องมือกลับข้อความออนไลน์ฟรีที่สามารถกลับข้อความได้ทันที พลิกอักขระ ตรวจสอบพาลินโดรม และสร้างข้อความย้อนกลับ ใช้งานได้กับ Unicode อีโมจิ และทุกภาษา
เครื่องมือกลับข้อความ
ป้อนหรือวางข้อความด้านล่างเพื่อกลับลำดับอักขระทันที ดูผลลัพธ์แบบเรียลไทม์ขณะที่คุณพิมพ์
เอกสารประกอบการใช้งาน
เครื่องกลับข้อความคืออะไร?
เครื่องกลับข้อความเป็นเครื่องมือที่สลับลำดับอักขระในข้อความ การพิมพ์ "hello" จะได้ "olleh" เครื่องมือนี้ทำงานโดยเขียนอักขระทุกตัวของข้อมูลขาเข้าแบบย้อนกลับจากตัวสุดท้ายไปยังตัวแรก ผู้คนใช้เครื่องมือนี้เพื่อสร้างข้อความย้อนกลับ ทดสอบว่าคำเป็นพาลินโดรมหรือไม่ หรือศึกษาแนวทางการกลับสตริงในการเขียนโปรแกรม
วิธีใช้เครื่องกลับข้อความ
- พิมพ์หรือวางข้อความลงในช่องป้อนข้อมูล
- ข้อความที่กลับแล้วจะแสดงด้านล่างทันทีเมื่อหยุดพิมพ์ ไม่ต้องกดปุ่ม
- กดปุ่มคัดลอกเพื่อคัดลอกผลลัพธ์
ปุ่มรีเซ็ตจะล้างทั้งข้อมูลขาเข้าและผลลัพธ์ เครื่องมือนี้รับอักขระได้สูงสุด 10,000 ตัว หากยาวกว่านั้นจะแสดงข้อความผิดพลาดให้ย่อข้อความ จำนวนนี้นับตามอักขระที่มองเห็น ดังนั้นอีโมจิหนึ่งตัวจึงนับเป็นหนึ่งอักขระ แม้คอมพิวเตอร์จะจัดเก็บเป็นหลายส่วนก็ตาม
สูตรการกลับข้อความ
สำหรับสตริงที่มีความยาว n และประกอบด้วยอักขระ สตริงที่กลับแล้วคือ:
กล่าวง่าย ๆ คือ อักขระตัวสุดท้ายจะกลายเป็นตัวแรก ตัวรองสุดท้ายจะกลายเป็นตัวที่สอง และดำเนินต่อไปเช่นนี้จนกระทั่งอักขระตัวแรกกลายเป็นตัวสุดท้าย
อัลกอริทึมทำงานอย่างไรทีละขั้นตอน
- เริ่มต้นด้วยผลลัพธ์ว่างเปล่า
- นำอักขระตัวสุดท้ายของข้อมูลขาเข้าไปเพิ่มในผลลัพธ์
- นำอักขระรองสุดท้ายไปเพิ่ม
- ทำซ้ำจนเพิ่มอักขระครบทุกตัวในลำดับย้อนกลับ
เครื่องมือกลับข้อความส่วนใหญ่ทำงานกับอักขระคอมพิวเตอร์แต่ละหน่วย แต่เครื่องมือนี้จะจัดกลุ่มอีโมจิ ธง และตัวอักษรที่มีเครื่องหมายกำกับเสียงแต่ละตัวให้เป็นหน่วยเดียวก่อนกลับลำดับ โดยใช้วิธีที่เรียกว่าการแบ่งส่วนกลุ่มกราฟีม ส่วนด้านล่างจะอธิบายว่าเหตุใดเรื่องนี้จึงสำคัญ
ตัวอย่างพร้อมวิธีทำ
ข้อมูลขาเข้า: Hello, World!
กลับแล้ว: !dlroW ,olleH
อักขระทุกตัว รวมถึงจุลภาค ช่องว่าง และเครื่องหมายอัศเจรีย์ ยังคงเป็นอักขระเดิม มีเพียงลำดับเท่านั้นที่เปลี่ยน
การจัดการอีโมจิ เครื่องหมายกำกับเสียง และอักขระยูนิโคดอื่น ๆ
คอมพิวเตอร์มักจัดเก็บอักขระที่มองเห็นได้หนึ่งตัว เช่น อีโมจิหรือตัวอักษรที่มีเครื่องหมายกำกับเสียง เป็นหน่วยย่อยหลายหน่วยที่เรียกว่าจุดรหัส วิธีการกลับลำดับที่สลับหน่วยเหล่านี้ทีละหน่วยโดยไม่พิจารณาว่าหน่วยใดอยู่ด้วยกัน อาจทำให้อักขระแยกออกจากกัน
ตัวอย่างเช่น "Hello 👍" มีอีโมจิยกนิ้วโป้งที่สร้างจากหน่วยที่ซ่อนอยู่คู่หนึ่ง การกลับลำดับทีละหน่วยแบบพื้นฐานอาจแยกคู่นี้ออกจากกันและทำให้เกิดสัญลักษณ์ที่เสียหายแทนอีโมจิ เครื่องมือนี้หลีกเลี่ยงปัญหาดังกล่าวโดยถือว่าอีโมจิ ธง และตัวอักษรที่มีเครื่องหมายกำกับเสียงแต่ละตัวเป็นหนึ่งหน่วย ดังนั้น "Hello 👍" จึงกลายเป็น "👍 olleH" อย่างถูกต้อง อีโมจิธงซึ่งสร้างจากสัญลักษณ์ที่ซ่อนอยู่สองตัวแทนรหัสประเทศก็จะยังคงสมบูรณ์: "🇺🇸 USA" จะกลับเป็น "ASU 🇺🇸" แทนที่จะแยกธงออกจากกัน
การใช้งานทั่วไป
- การตรวจสอบพาลินโดรม: พาลินโดรมเป็นข้อความที่อ่านจากด้านหน้าไปด้านหลังและจากด้านหลังไปด้านหน้าได้เหมือนกัน เช่น "racecar" การเปรียบเทียบคำกับคำที่กลับแล้วเป็นวิธีหนึ่งในการทดสอบเรื่องนี้
- การเรียนรู้การเขียนโค้ด: การกลับสตริงเป็นแบบฝึกหัดทั่วไปสำหรับฝึกใช้ลูป อาร์เรย์ และสแตก
- เกมคำศัพท์และปริศนา: คำที่กลับแล้วใช้ซ่อนข้อความในปริศนาและห้องหลบหนี
- เอฟเฟกต์การออกแบบ: นักออกแบบบางคนกลับข้อความเพื่อสร้างโลโก้สะท้อนหรือเอฟเฟกต์ภาพ
- การดีบัก: การเปรียบเทียบข้อความตามลำดับปกติกับข้อความที่กลับแล้วอาจช่วยตรวจพบข้อผิดพลาดของข้อมูลบางประเภท
การกลับอักขระกับการกลับคำ
การดำเนินการสองอย่างนี้มักถูกสับสนกัน
- การกลับอักขระ (สิ่งที่เครื่องมือนี้ทำ): อักขระทุกตัวจะถูกกลับลำดับ "Hello World" จะกลายเป็น "dlroW olleH"
- การกลับคำ: แต่ละคำยังคงเดิม แต่ลำดับของคำจะเปลี่ยน "Hello World" จะกลายเป็น "World Hello"
ประวัติโดยย่อ
การเขียนแบบกลับลำดับและแบบสะท้อนมีมาก่อนคอมพิวเตอร์หลายพันปี จารึกกรีกโบราณบางชิ้นใช้รูปแบบที่เรียกว่า boustrophedon ซึ่งสลับทิศทางของแต่ละบรรทัด จากซ้ายไปขวาแล้วจากขวาไปซ้าย คล้ายกับทิศทางที่วัวไถนา เลโอนาร์โด ดา วินชีเขียนสมุดบันทึกจำนวนมากด้วยอักษรสะท้อน ซึ่งจะอ่านได้เมื่อยกขึ้นส่องกระจกเท่านั้น นักประวัติศาสตร์ยังคงถกเถียงกันว่าเขาทำเช่นนี้เพื่อเก็บเป็นความลับ เพื่อความสะดวกในฐานะคนถนัดซ้าย หรือเพื่อป้องกันไม่ให้หมึกเลอะ
ในการประมวลผล การกลับสตริงเป็นแบบฝึกหัดการเขียนโปรแกรมมาตรฐานมาตั้งแต่ยุคแรกของวิทยาการคอมพิวเตอร์ มักใช้สอนการทำงานของสแตกและอาร์เรย์ เพราะการนำอักขระใส่สแตกแล้วนำออกจะกลับลำดับของอักขระโดยอัตโนมัติ
วิธีกลับข้อความในโค้ด
ภาษาโปรแกรมส่วนใหญ่มีวิธีในตัวหรือวิธีง่าย ๆ สำหรับกลับสตริง:
1text = "Hello, World!"
2print(text[::-1]) # !dlroW ,olleH
31const text = "Hello, World!";
2console.log([...text].reverse().join('')); // !dlroW ,olleH
3ตัวอย่างทั้งสองกลับข้อความได้ถูกต้องสำหรับตัวอักษรและตัวเลขทั่วไป รวมถึงอีโมจิที่เป็นหน่วยเดียว เช่น 🌍 แต่ยังอาจแยกอักขระที่สร้างจากหน่วยซ่อนอยู่หลายหน่วยออกจากกันได้ เช่น อีโมจิธงบางชนิด ตัวอักษรที่พิมพ์โดยใช้เครื่องหมายกำกับเสียงแยกต่างหาก หรืออีโมจิครอบครัวที่เชื่อมด้วยอักขระเชื่อมต่อพิเศษ การกลับลำดับอย่างปลอดภัยต่อกลุ่มกราฟีมเต็มรูปแบบ ซึ่งเป็นวิธีที่เครื่องมือนี้ใช้ ต้องอาศัยฟังก์ชันเฉพาะ เช่น Intl.Segmenter ของ JavaScript
ประสิทธิภาพ
การกลับข้อความใช้เวลาเชิงเส้น อัลกอริทึมจะดูอักขระแต่ละตัวเพียงครั้งเดียว ดังนั้นเมื่อเพิ่มข้อมูลขาเข้าเป็นสองเท่า งานที่ต้องทำก็จะเพิ่มขึ้นประมาณสองเท่า สำหรับข้อความทั่วไปตั้งแต่คำเดียวไปจนถึงหลายหน้า ผลลัพธ์จะแสดงแทบจะทันที ไฟล์ขนาดใหญ่มากตั้งแต่ระดับเมกะไบต์ขึ้นไปเหมาะกับการจัดการด้วยโปรแกรมเฉพาะทางที่อ่านข้อมูลเป็นกระแสแทนการโหลดทั้งหมดไว้ในหน่วยความจำในครั้งเดียว
คำถามที่พบบ่อย
จะกลับข้อความออนไลน์ได้อย่างไร?
วางหรือพิมพ์ข้อความลงในช่องด้านบน ข้อความที่กลับแล้วจะแสดงโดยอัตโนมัติทันทีเมื่อหยุดพิมพ์ ใช้ปุ่มคัดลอกเพื่อคัดลอกผลลัพธ์
มีความยาวข้อความสูงสุดหรือไม่?
มี เครื่องมือนี้รับอักขระได้สูงสุด 10,000 ตัว หากยาวกว่านั้นจะแสดงข้อความผิดพลาดแทนผลลัพธ์ อักขระจะถูกนับตามลักษณะที่ปรากฏบนหน้าจอ ดังนั้นอีโมจิหรือตัวอักษรที่มีเครื่องหมายกำกับเสียงจึงนับเป็นหนึ่งตัว ไม่ใช่สองตัว
เครื่องมือนี้กลับคำหรือกลับเฉพาะอักขระ?
เครื่องมือนี้กลับอักขระแต่ละตัว ไม่ได้เปลี่ยนลำดับของคำ "Hello World" จะกลายเป็น "dlroW olleH" ไม่ใช่ "World Hello"
รองรับอีโมจิและข้อความที่ไม่ใช่ภาษาอังกฤษหรือไม่?
รองรับ เครื่องมือนี้ถือว่าอีโมจิ ธง และตัวอักษรที่มีเครื่องหมายกำกับเสียงเป็นหน่วยเดียว จึงยังคงสมบูรณ์หลังการกลับลำดับ และยังทำงานกับอักษรทุกระบบ รวมถึงข้อความภาษาจีน อาหรับ และซีริลลิก
หากกลับข้อความสองครั้ง จะได้ข้อความเดิมกลับมาหรือไม่?
ได้ การกลับสตริงที่กลับแล้วจะคืนข้อความเดิม คุณสมบัตินี้เรียกว่าอินโวลูชัน
ข้อความที่กลับแล้วมีประโยชน์สำหรับการเข้ารหัสหรือไม่?
ไม่ การกลับอักขระไม่ปลอดภัย เป็นเพียงการซ่อนข้อความในเชิงภาพ และใครก็ตามที่กลับลำดับอีกครั้งก็สามารถอ่านข้อความได้
เอกสารอ้างอิง
- The Unicode Consortium. ภาคผนวกมาตรฐานยูนิโคด #29: การแบ่งส่วนข้อความยูนิโคด
- Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). บทนำสู่อัลกอริทึม (ฉบับที่ 3). MIT Press
- MDN Web Docs. Intl.Segmenter. Mozilla Developer Network