CodeGym /وبلاگ جاوا /Random-FA /معکوس کردن یک رشته در جاوا
John Squirrels
مرحله
San Francisco

معکوس کردن یک رشته در جاوا

در گروه منتشر شد

رشته معکوس چیست؟

شروع به خواندن یک رشته کنید که از آخرین کاراکتر آن شروع می شود تا اولین کاراکتر. بینگو! این رشته معکوس شما بود."
در اینجا نمایشی از نحوه ظاهر آن است.
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";

چگونه یک رشته را در جاوا معکوس کنیم؟

راه های مختلفی برای معکوس کردن یک رشته در جاوا وجود دارد . با این حال، جاوا هیچ متد reverse() را برای کلاس String ارائه نمی کند . رویکرد ساده لوحانه با استفاده از حلقه for شروع می شود . روش تکراری سنتی بعداً می‌توانیم آن را با استفاده از متدهای ()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));
	}
}

خروجی

reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(I LOVE JAVA!) = !AVAJ EVOL I reverse (محل مورد علاقه من برای یادگیری جاوا CodeGym است.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM معکوس (اسم من لوبینا خان است.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

توضیح

public static String reverseInputString(String myString) { ... }
روش reverseInputString یک رشته ورودی به نام myString می گیرد .
if (myString == null)
	return myString;
بررسی کنید که آیا رشته ورودی یعنی myString تهی است یا خیر. اگر null یافت شد، ورودی را همانطور که هست برگردانید. ما نیازی به ادامه بیشتر نداریم. به این روش رسیدگی به پرونده مرزی برای جلوگیری از هرگونه خطا گفته می شود.
String reverseString = "";
یک رشته خالی برای ذخیره خروجی اعلام کنید.
for (int i = myString.length() - 1; i >= 0; i--) {
	reverseString = reverseString + myString.charAt(i);
}
از یک حلقه for معمولی استفاده کنید . تکرار کننده i را از آخرین فهرست رشته ورودی مقداردهی کنید . به آخرین فهرست رشته ورودی دسترسی پیدا کنید و آن را در رشته خروجی ذخیره کنید. به تکرار ادامه دهید تا به شاخص 0 یا ابتدای رشته ورودی برسید.
return reverseString;
reverseString را برگردانید و طبق نیاز خود از آن استفاده کنید.

روش 2 - استفاده از کلاس String Builder

در جاوا، محتویات یک رشته پس از مقداردهی اولیه قابل تغییر نیست. از این رو، هیچ متد reverse() برای String s وجود ندارد. اما کلاس های دیگر مانند StringBuilder و StringBuffer در جاوا حاوی محتویاتی هستند که قابل تغییر یا تغییر هستند. برای معکوس کردن یک رشته بدون حلقه، و با استفاده از کلاس 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 I معکوس می کنم (این رشته را با استفاده از کلاس StringBuilder معکوس کنید .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR معکوس (این رشته را با استفاده از کلاس StringBuffer معکوس کنید.) =

توضیح

String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
برای معکوس کردن رشته ورودی باید آن را به 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.");
از طرف دیگر، می‌توانید یک رشته را مستقیماً به StringBuilder یا StringBuffer ارسال کنید .

نتیجه

تا پایان این پست، باید با معکوس کردن Strings و نحوه دستیابی به آن با استفاده از کلاس های دیگر StringBuilder و StringBuffer آشنا شوید. شما می توانید هر روشی را با توجه به راحتی خود انتخاب کنید. با خیال راحت هر زمان که احساس کردید گیر کرده اید، به آن بروید. تا آن زمان به تمرین و درخشش ادامه دهید.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION