CodeGym /จาวาบล็อก /สุ่ม /ย้อนกลับสตริงใน Java
John Squirrels
ระดับ
San Francisco

ย้อนกลับสตริงใน Java

เผยแพร่ในกลุ่ม

Reverse String คืออะไร?

“เริ่มอ่านสตริงโดยเริ่มจากอักขระตัวสุดท้ายไปจนถึงอักขระตัวแรก บิงโก! นั่นคือสตริงที่กลับด้านของคุณ"
นี่คือการสาธิตว่าจะมีลักษณะอย่างไร

Input String = "X Y Z";
Output String = "Z Y X"

Input String = "1 2 3";
Output String = "3 2 1";

Input String = "I love Java!";
Output String = "!avaJ evol I";

จะย้อนกลับสตริงใน Java ได้อย่างไร

มีหลายวิธีในการย้อนกลับสตริงใน Java อย่างไรก็ตาม Java ไม่มีเมธอดย้อนกลับ ()สำหรับคลาสสตริง วิธีการไร้เดียงสาเริ่มต้นด้วยการใช้for loop ขั้นตอนการวนซ้ำแบบดั้งเดิม หลังจากนั้นเราสามารถสร้างมันขึ้นมาได้โดยใช้ เมธอด reverse() ที่คลาสอื่นๆ เช่น StringBuilderและStringBufferนำเสนอ

วิธีที่ 1 - วิธีทำซ้ำแบบเก่า


public class StringReversal {

	public static String reverseInputString(String myString) {

		if (myString == null)
			return myString;

		String reverseString = "";

		for (int i = myString.length() - 1; i >= 0; i--) {		

			reverseString = reverseString + myString.charAt(i);
		}
		return reverseString;
	}

	public static void main(String[] args) {

		String myString1 = "X Y Z";
		System.out.println("reverse(" + myString1 + ") = " + reverseInputString(myString1));

		String myString2 = "1 2 3";
		System.out.println("reverse(" + myString2 + ") = " + reverseInputString(myString2));

		String myString3 = "I LOVE JAVA!";
		System.out.println("reverse(" + myString3 + ") = " + reverseInputString(myString3));

		String myString4 = "My favourite place to learn Java is CodeGym.";
		System.out.println("reverse(" + myString4 + ") = " + reverseInputString(myString4));

		String myString5 = "My name is Lubaina Khan.";
		System.out.println("reverse(" + myString5 + ") = " + reverseInputString(myString5));
		
		// Boundary Case to see what happens if a String is null
		String myString6 = null;
		System.out.println("reverse(" + myString6 + ") = " + reverseInputString(myString6));
		
		// Boundary Case to see what happens if a String is empty
		String myString7 = "";
		System.out.println("reverse(" + myString7 + ") = " + reverseInputString(myString7));
	}
}

เอาต์พุต

ย้อนกลับ (XYZ) = ZYX ย้อนกลับ (1 2 3) = 3 2 1 ย้อนกลับ (ฉันรัก JAVA!) = !AVAJ EVOL ฉันย้อนกลับ (สถานที่โปรดของฉันในการเรียนรู้ Java คือ CodeGym) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM ย้อนกลับ (ชื่อของฉันคือ Lubaina Khan.) = .nahK aniabuL si eman yM ย้อนกลับ (null) = null ย้อนกลับ () =

คำอธิบาย


public static String reverseInputString(String myString) { ... }
เมธอดreverseInputStringใช้ Input Stringที่เรียกว่า myString

if (myString == null)
	return myString;
ตรวจสอบว่า สตริง อินพุตเช่นmyStringเป็นโมฆะหรือไม่ หากพบว่าเป็นค่าว่าง ให้ส่งคืนอินพุตตามเดิม เราไม่จำเป็นต้องดำเนินการต่อไป สิ่งนี้เรียกว่าการจัดการกรณีขอบเขตเพื่อหลีกเลี่ยงข้อผิดพลาดใดๆ

String reverseString = "";
ประกาศสตริงว่างเพื่อเก็บเอาต์พุต

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
ใช้ปกติสำหรับลูป เริ่มต้นตัววนซ้ำi จากดัชนีสุดท้ายของอินพุตString เข้าถึงดัชนีสุดท้ายของสตริงอินพุตและเก็บไว้ในสตริงเอาต์พุต ทำซ้ำไปเรื่อย ๆ จนกว่าจะถึงดัชนีที่ 0 หรือจุดเริ่มต้นของสตริงอินพุต

return reverseString;
ส่งคืนreverseStringและใช้ตามความต้องการของคุณ

วิธีที่ 2 - การใช้คลาสตัวสร้างสตริง

ใน Java เนื้อหาของสตริงเมื่อเริ่มต้นแล้วจะไม่สามารถเปลี่ยนแปลงได้ ดังนั้นจึงไม่มี วิธี การย้อนกลับ ()สำหรับString s แต่คลาสอื่นๆ เช่นStringBuilderและStringBufferใน Java มีเนื้อหาที่ไม่แน่นอนหรือเปลี่ยนแปลงได้ หากต้องการย้อนกลับสตริงโดยไม่มีการวนซ้ำ และใช้คลาสStringBuilderหรือStringBufferในตัว ลองดูตัวอย่างด้านล่าง

public class StringBuilderReversal {

	public static void main(String[] args) {

		String input1 = "A B C";
		StringBuilder inputText1 = new StringBuilder(input1);
		System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());

		String input2 = "0 1 2 2 3 3 3";
		StringBuilder inputText2 = new StringBuilder(input2);
		System.out.println("reverse(" + inputText2 + ") = " + inputText2.reverse());

		String input3 = "Monday";
		StringBuilder inputText3 = new StringBuilder(input3);
		System.out.println("reverse(" + inputText3 + ") = " + inputText3.reverse());

		String input4 = "I love CodeGym!";
		StringBuilder inputText4 = new StringBuilder(input4);
		System.out.println("reverse(" + inputText4 + ") = " + inputText4.reverse());

		 // ReverseString using the StringBuilder class
		StringBuilder inputText5 = new StringBuilder("Reverse this String using StringBuilder Class.");
		System.out.println("reverse(" + inputText5 + ") = " + inputText5.reverse());

		 // ReverseString using the StringBuffer class
		StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
		System.out.println("reverse(" + inputText6 + ") = " + inputText6.reverse());
	}
}

เอาต์พุต

ย้อนกลับ (ABC) = CBA ย้อนกลับ (0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 ย้อนกลับ (วันจันทร์) = yadnoM ย้อนกลับ (ฉันชอบ CodeGym!) = !myGedoC evol ฉันย้อนกลับ (ย้อนกลับสตริงนี้โดยใช้คลาส StringBuilder .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR ย้อนกลับ(ย้อนกลับสตริงนี้โดยใช้คลาส StringBuffer) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

คำอธิบาย


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
ในการย้อน กลับ อินพุตStringคุณต้องแปลงเป็นStringBuilder เพื่อส่งสตริง อินพุต ไปยังตัวสร้าง StringBuilder

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
หลังจากแปลงStringเป็นStringBuilderแล้ว คุณสามารถย้อนกลับและพิมพ์ผลลัพธ์ได้

 // ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
หรือคุณสามารถส่งString ไปยัง StringBuilderหรือStringBufferได้ โดยตรง

บทสรุป

ในตอนท้ายของโพสต์นี้ คุณต้องคุ้นเคยกับการกลับรายการของ Strings และวิธีทำให้สำเร็จโดยใช้คลาสอื่นของ StringBuilder และ StringBuffer คุณสามารถเลือกวิธีใดก็ได้ตามความสะดวกของคุณ รู้สึกอิสระที่จะกระโดดเมื่อใดก็ตามที่คุณรู้สึกติดขัด ถึงตอนนั้น จงฝึกฝนและส่องแสงต่อไป
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION