CodeGym /בלוג Java /Random-HE /הפוך מחרוזת ב-Java
John Squirrels
רָמָה
San Francisco

הפוך מחרוזת ב-Java

פורסם בקבוצה

מה זה מחרוזת הפוכה?

"התחל לקרוא מחרוזת החל מהדמות האחרונה שלה ועד לדמות הראשונה. בינגו! זה היה המחרוזת ההפוכה שלך."
הנה הדגמה של איך זה ייראה.
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 לא מספקת שום שיטה reverse() עבור מחלקת String . הגישה הנאיבית מתחילה בשימוש ב-for loop. ההליך האיטרטיבי המסורתי. מאוחר יותר נוכל לבנות אותו על ידי שימוש בשיטות reverse() המוצעות על ידי מחלקות אחרות כמו StringBuilder ו- StringBuffer .

שיטה 1 - The Old School Iterative Way

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 reverse(שמי הוא Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

הֶסבֵּר

public static String reverseInputString(String myString) { ... }
השיטה reverseInputString לוקחת מחרוזת קלט בשם myString .
if (myString == null)
	return myString;
בדוק אם מחרוזת הקלט כלומר myString היא null. אם נמצא null, החזר את הקלט כפי שהוא. אנחנו לא צריכים להמשיך הלאה. זה נקרא טיפול במקרה גבול כדי למנוע שגיאות כלשהן.
String reverseString = "";
הכריז על מחרוזת ריקה כדי לאחסן את הפלט.
for (int i = myString.length() - 1; i >= 0; i--) {
	reverseString = reverseString + myString.charAt(i);
}
השתמש בלולאה רגילה . אתחול האיטרטור i מהאינדקס האחרון של מחרוזת הקלט . גש לאינדקס האחרון של מחרוזת הקלט ואחסן אותו במחרוזת הפלט. המשך לחזור עד שתגיע לאינדקס ה-0 או לתחילת מחרוזת הקלט.
return reverseString;
החזר את ה- reverseString והשתמש בו לפי הדרישות שלך.

שיטה 2 - השימוש בכיתה בונה מחרוזות

ב-Java, לא ניתן לשנות את התוכן של מחרוזת לאחר אתחול. לפיכך, אין שיטה reverse() זמינה עבור 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());
	}
}

תְפוּקָה

reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(Monday) = yadnoM reverse(אני אוהב CodeGym!) = !myGedoC evol I reverse(הפוך מחרוזת זו באמצעות StringBuilder Class .) = .ssalC redliuBgnirtS gnisu gnirts siht esrever הפוך (הפוך מחרוזת זו באמצעות StringBuffer Class.) = .ssalC reffuBgnirts gnisu gnirts siht esreveR

הֶסבֵּר

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