จะทำ Reverse String ใน Java ได้อย่างไร?
เผยแพร่แล้ว: 2023-01-06สตริงคือลำดับอักขระและถือเป็นออบเจกต์ใน Java เป็นวัตถุใน Java ที่เก็บข้อมูลในอาร์เรย์อักขระ สตริงที่ย้อนกลับเรียกว่าสตริงย้อนกลับ ตัวอย่างเช่น การย้อนกลับของสตริง 'program' คือ 'margorP'
สารบัญ
ตรรกะที่อยู่เบื้องหลังการกลับรายการสตริงใน Java:
มีหลายวิธีในการย้อนกลับสตริง โดยแต่ละวิธีใช้ฟังก์ชันแยกกัน แม้ว่าวิธีการที่ใช้จะแตกต่างกัน แต่กระบวนการพื้นฐานที่อยู่เบื้องหลังการกลับสตริงนั้นเกือบจะเหมือนกัน ตรรกะทั่วไปที่ใช้คือ:
- ป้อนสตริงโดยใช้อินพุตของผู้ใช้หรือในรหัส
- นำอักขระของสตริงที่เริ่มต้นจากตำแหน่งสุดท้ายและบันทึกไว้ในตัวแปรใดๆ
- แสดงผล
เรียนรู้หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโทเพื่อติดตามความก้าวหน้าในอาชีพของคุณอย่างรวดเร็ว
วิธีต่างๆ ในการย้อนกลับสตริงใน Java:
- ใช้ StringBuffer หรือ StringBuilder
- การใช้การวนซ้ำแบบย้อนกลับ
- ใช้ charAt() วิธีการ
- การใช้วัตถุ ArrayList
- การใช้การเรียกซ้ำ
- แปลงสตริงเป็นไบต์
- การใช้สแต็ค
เรามาดูรายละเอียดแต่ละวิธีเหล่านี้กัน
หลักสูตรและบทความยอดนิยมเกี่ยวกับวิศวกรรมซอฟต์แวร์
โปรแกรมยอดนิยม | |||
โปรแกรม Executive PG ในการพัฒนาซอฟต์แวร์ - IIIT B | โปรแกรมใบรับรอง Blockchain - PURDUE | โปรแกรมใบรับรองความปลอดภัยทางไซเบอร์ - PURDUE | MSC ในวิทยาการคอมพิวเตอร์ - IIIT B |
บทความยอดนิยมอื่น ๆ | |||
เงินเดือนวิศวกรคลาวด์ในสหรัฐอเมริกา 2021-22 | เงินเดือนสถาปนิกโซลูชัน AWS ในสหรัฐอเมริกา | เงินเดือนนักพัฒนาแบ็กเอนด์ในสหรัฐอเมริกา | เงินเดือนนักพัฒนาส่วนหน้าในสหรัฐอเมริกา |
เงินเดือนนักพัฒนาเว็บในสหรัฐอเมริกา | คำถามสัมภาษณ์ Scrum Master ในปี 2022 | จะเริ่มอาชีพใน Cyber Security ในปี 2565 ได้อย่างไร | ตัวเลือกอาชีพในสหรัฐอเมริกาสำหรับนักศึกษาวิศวกรรม |
1. โดย StringBuilder / StringBuffer
คลาส StringBuffer หรือ StringBuilder มีเมธอดในตัว reverse() ที่ย้อนกลับอักขระในสตริง มันแทนที่ลำดับของอักขระในลำดับย้อนกลับ วิธีนี้เป็นวิธีคงที่ที่ใช้ตรรกะเพื่อ ย้อนกลับ สตริง ใน java
StringBuffer และ StringBuilder เป็นคลาสยูทิลิตี้สองคลาสใน Java ที่จัดการการจัดสรรทรัพยากรของการปรับแต่งสตริง
ใช้ StringBuffer:
โปรแกรม Java ที่ย้อนกลับสตริงโดยใช้ StringBuffer:
คลาสสาธารณะ ExampleofReverseString{
โมฆะสาธารณะคงที่ main(String[] args) {
สตริง str1 = “แอปเปิ้ล”;
// เก็บลำดับสตริงที่ย้อนกลับในตัวแปร rev
สตริง rev = ใหม่ StringBuffer(str1).reverse().toString();
// พิมพ์สตริงก่อนที่จะย้อนกลับ
System.out.println(“\สตริงก่อนการกลับรายการคือ: “+str1);
// พิมพ์สตริงหลังจากย้อนกลับ
System.out.println(“สตริงหลังการกลับรายการคือ: “+rev);
}
}
เอาท์พุต:
สตริงก่อนการกลับรายการคือ: Apple
สตริงหลังจากการกลับรายการคือ: elppA
ในตัวอย่างข้างต้น สตริงที่ระบุเป็นอินพุตจะถูกบัฟเฟอร์โดยใช้ StringBuffer จากนั้นจะถูกย้อนกลับโดยใช้เมธอด reverse() หลังจากบัฟเฟอร์ถูกย้อนกลับ มันจะถูกแปลงเป็นสตริงโดยใช้เมธอด toString()
ใช้ StringBuilder:
คลาส StringBuilder เป็นที่ต้องการอย่างมากเมื่อเทียบกับคลาส StringBuffer มันเร็วกว่าและไม่ซิงโครไนซ์
โปรแกรม Java ที่ย้อนกลับสตริงโดยใช้ StringBuilder:
คลาสสาธารณะ ExampleofReverseString{
โมฆะสาธารณะคงที่ main(String[] args) {
สตริง str1 = “โรงเรียน”;
// เก็บสตริงที่ย้อนกลับในตัวแปร rev
สตริง rev = ใหม่ StringBuilder(str1).reverse().toString();
// พิมพ์สตริงก่อนที่จะย้อนกลับ
System.out.println(“\nString ก่อนย้อนกลับ: “+str1);
// พิมพ์สตริงหลังจากย้อนกลับ
System.out.println(“สตริงหลังจากย้อนกลับ: “+rev);
}
}
เอาท์พุต:
สตริงก่อนย้อนกลับ: โรงเรียน
สตริงก่อนย้อนกลับ: loohcS
ในโค้ดข้างต้น จะใช้ออบเจกต์สำหรับคลาส StringBuilder อ็อบเจ็กต์ StringBuilder ที่สอดคล้องกันนั้นมีประสิทธิภาพหน่วยความจำ ไม่แน่นอน และรวดเร็วในการดำเนินการ วัตถุเรียกเมธอดย้อนกลับ () ในตัวเพื่อให้เอาต์พุตที่ต้องการ
2. โดยการวนซ้ำแบบย้อนกลับ
โปรแกรม Java ที่ย้อนกลับสตริงโดยใช้ Reverse Iteration:
คลาสสาธารณะ StringReversal {
สาธารณะคงที่ String reverseString (String st){
ถ่าน ch[]=st.toCharArray();
สตริงรอบ =””;
สำหรับ (int i=ch.length-1;i>=0;i–)
{
รอบ+=ch[i];
}
กลับรอบ;
}
}
TestStringReversal คลาสสาธารณะ {
โมฆะสาธารณะคงที่ main(String[] args) {
System.out.println(StringReversal.reverseString("ฉันเป็นครู"));
System.out.println(StringReversal.reverseString("ฉันสอนวิชาภาษาอังกฤษ"));
}
}
เอาท์พุต:
ฉันมา rehcaet
ฉันทราบดีว่า tcejbus
ในโปรแกรมข้างต้นสำหรับ สตริง ย้อนกลับใน java อักขระของสตริงอินพุตจะถูกเก็บไว้ในตัวแปร rev+ ที่เริ่มต้นจากตำแหน่งสุดท้ายโดยใช้ for ลูป สตริงที่ย้อนกลับจะแสดงในเอาต์พุตหลังจากเก็บอักขระทั้งหมดแล้ว
คุณสามารถใช้ while วนซ้ำสำหรับการวนซ้ำ และรหัสของมันมีดังนี้:
คลาสสาธารณะ StringReversal {
โมฆะสาธารณะคงที่หลัก (String[] args)
{
สตริง stringInput = “สตริงนี้”;
int StrLength=stringInput.length();
ในขณะที่ (StrLength >0)
{
System.out.print(stringInput.charAt(StrLength -1));
StrLength–;
}
}
}
เอาท์พุต:
gnirtS sihT
3. ใช้ charAt() วิธีการ
โปรแกรม Java มีดังนี้:
คลาสสาธารณะ ExampleofReverseString {
โมฆะสาธารณะคงที่ main(String[] args) {
String str = “เรียนรู้ Java”;
// เก็บสตริงที่ย้อนกลับในตัวแปร revv
สตริง revv = “”;
// ความยาวของสตริงจะถูกเก็บไว้ใน len
int len = str.length ();
สำหรับ (int i=len-1;i>=0;i–)
revv = revv + str.charAt(i);
// พิมพ์สตริงก่อนที่จะย้อนกลับ
System.out.println(“\nString ก่อนดำเนินการกลับรายการ: “+str);
// พิมพ์สตริงหลังจากย้อนกลับ
System.out.println(“สตริงหลังจากการกลับรายการ: “+ revv);
}
}
เอาท์พุต:
สตริงก่อนการดำเนินการกลับรายการ: เรียนรู้ Java
สตริงก่อนการดำเนินการกลับรายการ: avaJ nraeL
ใน โปรแกรมจาวานี้เพื่อย้อนกลับสตริง อักขระสตริง อินพุตจะถูกเก็บไว้ในตัวแปร revv ที่เริ่มต้นจากตำแหน่งสุดท้ายโดยใช้ for ลูป หลังจากเก็บอักขระทั้งหมดแล้ว สตริงที่กลับรายการจะสะท้อนให้เห็นในเอาต์พุต
4. การใช้วัตถุ ArrayList
โปรแกรม Java มีดังนี้:
นำเข้า java.util.ArrayList;
นำเข้า java.util.Collections;
นำเข้า java.util.List;
นำเข้า java.util.ListIterator;
คลาสสาธารณะ ExampleofReverseString {
โมฆะสาธารณะคงที่ main(String[] args) {
String str = “สนุกกับการเขียนโค้ด”;
// แปลงสตริงอินพุตเป็นอาร์เรย์อักขระ
ถ่าน ch[]=str.toCharArray();
// เพิ่มอาร์เรย์อักขระไปยังวัตถุของ ArrayList
รายการ<ตัวอักษร> obj = ใหม่ ArrayList<>();
สำหรับ (ถ่าน c: ch)
obj.add(ค);
// ส่งวัตถุของ ArrayList ไปยังคอลเล็กชัน
Collections.reverse (obj);
// สร้างวัตถุของ listiterator เพื่อทำซ้ำในรายการ
ListIterator objnew = obj.listIterator();
// พิมพ์สตริงก่อนที่จะกลับรายการ
System.out.println(“\nString ก่อนการดำเนินการกลับรายการ: “+ str);
// พิมพ์สตริงหลังจากการกลับรายการ
System.out.println(“\nString หลังจากการดำเนินการกลับรายการ: “);
ในขณะที่ (objnew.hasNext())
System.out.print(objnew.next());
}
}
เอาท์พุต:
สตริงก่อนการดำเนินการกลับรายการ: เพลิดเพลินกับการเข้ารหัส
สตริงหลังการดำเนินการกลับรายการ: gnidoc yojnE
โปรแกรม Java นี้ ใช้ย้อนกลับสตริง เก็บอักขระของสตริงอินพุตในวัตถุ ArrayList มันถูกย้อนกลับโดยใช้วิธีการย้อนกลับ () ในคอลเลกชัน ตัววนซ้ำจะวนซ้ำในรายการและพิมพ์สตริงที่ย้อนกลับหลังจากที่ถูกย้อนกลับ
5. การใช้การเรียกซ้ำ
โปรแกรม Java มีดังนี้:
คลาสสาธารณะ ExampleofReverseString {
// กำหนดฟังก์ชันการกลับรายการ
รอบสตริง (String str) {
// คืนค่า null หากความยาวของสตริงเป็นศูนย์
ถ้า (str.length() == 0)
{
กลับ " ";
}
// มิฉะนั้นจะคืนค่าอักขระที่เป็นผลลัพธ์จากเมธอดต่อไปนี้
กลับ str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));
}
โมฆะสาธารณะคงที่หลัก (String[ ] args)
{
// สร้างวัตถุของคลาส
ExampleofReverseString r = ใหม่ ExampleofReverseString ();
// สตริงอินพุต
สตริง str = “ปริญญาโทใน Java”;
// พิมพ์สตริงก่อนที่จะกลับรายการ
System.out.println(“\nString ก่อนการดำเนินการกลับรายการ: “+ str);
// พิมพ์สตริงหลังจากการกลับรายการ
System.out.println(“\nString หลังจากการดำเนินการกลับรายการ: ” + r.revs(str));
}
เอาท์พุต:
สตริงก่อนการดำเนินการกลับรายการ: หลักใน Java
สตริงหลังการดำเนินการกลับรายการ: avaJ ni retsaM
ฟังก์ชันเรียกซ้ำถูกสร้างขึ้นในโปรแกรม Java นี้ ตรวจสอบความยาวของสตริงและการย้อนกลับสิบครั้ง มันทำงานเหมือนกับการ ย้อนกลับ ของ ฟังก์ชันใน java
6. โดยการแปลงสตริงเป็นไบต์
มันใช้เมธอด getBytes() ที่แปลงหรือแยกสตริงอินพุตเป็นไบต์ ในขณะนั้น ความยาวอาร์เรย์ของไบต์จะเท่ากับความยาวของสตริงอินพุต จากนั้นโปรแกรมจะรับไบต์ในลำดับย้อนกลับและบันทึกลงในอาร์เรย์ไบต์ใหม่
ในโค้ดต่อไปนี้ อาร์เรย์ไบต์จะถูกสร้างขึ้นชั่วคราว อาร์เรย์สองไบต์ถูกสร้างขึ้น - หนึ่งเพื่อจัดเก็บไบต์ที่แปลงแล้วและอีกอันหนึ่งเพื่อบันทึกผลลัพธ์ในลำดับย้อนกลับ
โปรแกรม Java มีดังนี้:
โมฆะสาธารณะคงที่ main(String[] arg) {
ค่าอินพุตสตริง = “คอมพิวเตอร์”;
ไบต์ [] strByteArray = ค่าอินพุต.getBytes ();
ไบต์ [] ผลลัพธ์ = ไบต์ใหม่ [strByteArray.length];
// เก็บผลลัพธ์ในลำดับย้อนกลับในไบต์ผลลัพธ์ []
สำหรับ (int i = 0; i < strByteArray.length; i++)
ผลลัพธ์ [i] = strByteArray [strByteArray.length – i – 1];
System.out.println( “สตริงหลังจากการดำเนินการย้อนกลับคือ:” +สตริงใหม่(ผลลัพธ์));
}
เอาท์พุต:
สตริงหลังจากการดำเนินการย้อนกลับคือ: retupmoC
7) การใช้สแต็ค
วิธีนี้เกี่ยวข้องกับขั้นตอนต่อไปนี้เพื่อย้อนกลับสตริง Java โดยใช้โครงสร้างข้อมูลแบบ Stack
- สร้างกองโดยไม่มีอักขระ
- แปลงสตริงอินพุตเป็นอาร์เรย์อักขระโดยใช้เมธอด String.toCharArray() จากนั้นจะเพิ่มอักขระแต่ละตัวลงในสแต็ก
สาม. ดึงอักขระจากสแต็กจนกว่าจะว่าง จากนั้นกำหนดอักขระอีกครั้งในอาร์เรย์อักขระ ดังนั้นตอนนี้ตัวละครจะมาถึงในลำดับที่กลับกัน
- อาร์เรย์อักขระถูกแปลงเป็นสตริงโดยใช้ String.copyValueOf(char[]) และส่งคืนสตริงใหม่ในที่สุด
โปรแกรม Java มีดังนี้:
นำเข้า java.util.Stack;
คลาสหลัก
{
สาธารณะคงสตริงย้อนกลับ (String str)
{
// ตรวจสอบว่าสตริงว่างหรือเป็นโมฆะ
ถ้า (str == null || str.equals(“”)) {
กลับ str;
}
// สร้างสแต็กว่างของอักขระ
สแต็ค <ตัวละคร> สแต็ค = ใหม่ สแต็ค <ตัวละคร> ();
// เพิ่มอักขระทั้งหมดของสตริงอินพุตลงในสแต็ก
ถ่าน [] ch = str.toCharArray ();
สำหรับ (int i = 0; i < str.length(); i++) {
stack.push(ch[i]);
}
// เริ่มต้นจากดัชนี 0
int ม = 0;
// ดึงอักขระจากสแต็กจนกว่าจะว่าง
ในขณะที่ (!stack.isEmpty())
{
// กำหนดอักขระที่ดึงมาแต่ละตัวกลับไปที่อาร์เรย์อักขระ
ch[m++] = stack.pop();
}
// แปลงอาร์เรย์อักขระเป็นสตริงและส่งกลับ
กลับ String.copyValueOf(ch);
}
โมฆะสาธารณะคงที่หลัก (String[] args)
{
String str = “นวัตกรรมเทคโนโลยี”;
str = ย้อนกลับ (str);
System.out.println(“การย้อนกลับของสตริงอินพุต: ” + str);
}
}
เอาต์พุต
ย้อนกลับของสตริงอินพุต: ygolonhceT noitavonnI
เริ่มต้นใช้งาน Java Journey ด้วย UpGrad
หากคุณต้องการเรียนรู้ Java คุณต้องเข้าใจแนวคิดของ Core Java เพื่อที่คุณจะได้ศึกษาต่อในหลักสูตรวิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์ของ UpGrad ครอบคลุมหัวข้อต่างๆ เช่น Core Java, แนวคิด OOPS, ออบเจกต์ และคลาสใน Java, วิธีการใน Java, Java Virtual Machine, ความหลากหลาย, การสืบทอด, สิ่งที่เป็นนามธรรม, การห่อหุ้ม ฯลฯ คุณจะได้รับคำแนะนำจากผู้เชี่ยวชาญในอุตสาหกรรม ผู้เชี่ยวชาญเหล่านี้จัดเซสชันสดเชิงโต้ตอบที่ครอบคลุมหลักสูตรและหัวข้อขั้นสูง
วิธีที่ง่ายที่สุดในการย้อนกลับสตริงใน Java คืออะไร
วิธีที่ง่ายที่สุดในการย้อนกลับสตริงใน Java คือการใช้คลาส StringBuffer สนับสนุนเมธอดที่เรียกว่า reverse() ซึ่งจะย้อนกลับเนื้อหาของออบเจกต์ StringBuffer ที่มีอยู่และส่งคืนออบเจกต์ StringBuffer เอาต์พุต
วิธีการเรียกซ้ำใน Java คืออะไร?
เมธอดที่เรียกตัวเองเรียกว่า recursive method ใน Java กระบวนการที่เกี่ยวข้องเรียกว่าการเรียกซ้ำ
แอปพลิเคชันของ String ใน Java คืออะไร
ใน Java สามารถใช้สตริงเพื่อตรวจหาการคัดลอกผลงานในโค้ดได้ สามารถใช้สำหรับการเข้ารหัสและถอดรหัสเพื่อการถ่ายโอนข้อมูลอย่างปลอดภัยจากผู้ส่งไปยังผู้รับ แอปพลิเคชันสตริงช่วยคุณดึงข้อมูลจากแหล่งข้อมูลที่ไม่ระบุชื่อ นอกจากนี้ แอปพลิเคชันสตริงและอัลกอริทึมยังมอบตัวกรองที่ได้รับการปรับปรุงเพื่อแก้ปัญหาการทับซ้อนของคำต่อท้าย-คำนำหน้าโดยประมาณ