ما هي السلسلة العكسية؟
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 أي طريقة عكسية () لفئة السلسلة . يبدأ النهج الساذج باستخدام الحلقة . الإجراء التكراري التقليدي. يمكننا لاحقًا بناءه باستخدام الأساليب العكسية() التي تقدمها فئات أخرى مثل StringBuilder و StringBuffer .الطريقة الأولى - الطريقة التكرارية للمدرسة القديمة
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 عكسي (أنا أحب جافا!) = !AVAJ EVOL I عكسي (المكان المفضل لتعلم جافا هو CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM عكسي (اسمي لوبينا خان.) = .nahK aniabuL si eman yM عكسي(null) = nullverse() =
توضيح
public static String reverseInputString(String myString) { ... }
تأخذ الطريقة عكسيةInputString سلسلة إدخال تسمى myString .
if (myString == null)
return myString;
تحقق مما إذا كانت سلسلة الإدخال ، أي myString، فارغة. إذا وجدت فارغة، قم بإرجاع الإدخال كما هو. لسنا بحاجة للمضي قدمًا. وهذا ما يسمى معالجة الحالة الحدودية لتجنب أي أخطاء.
String reverseString = "";
قم بتعريف سلسلة فارغة لتخزين الإخراج.
for (int i = myString.length() - 1; i >= 0; i--) {
reverseString = reverseString + myString.charAt(i);
}
استخدم حلقة for عادية . قم بتهيئة المكرر i من الفهرس الأخير لسلسلة الإدخال . الوصول إلى الفهرس الأخير لسلسلة الإدخال وتخزينه في سلسلة الإخراج. استمر في التكرار حتى تصل إلى الفهرس 0 أو بداية سلسلة الإدخال.
return reverseString;
قم بإرجاع سلسلة عكسية واستخدمها وفقًا لمتطلباتك.
الطريقة الثانية - استخدام فئة منشئ السلسلة
في Java، لا يمكن تغيير محتويات السلسلة بمجرد تهيئتها. وبالتالي، لا توجد طريقة عكسية () متاحة للسلسلة . لكن الفئات الأخرى مثل 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 I عكس (عكس هذه السلسلة باستخدام فئة StringBuilder .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR Reverse (عكس هذه السلسلة باستخدام 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 .
GO TO FULL VERSION