كيفية عمل سلسلة عكسية في جافا؟

نشرت: 2023-01-06

السلسلة عبارة عن تسلسل أحرف ويتم التعامل معها ككائن في Java. إنه كائن في Java يخزن البيانات في مصفوفة أحرف. تسمى السلسلة المعكوسة سلسلة عكسية. على سبيل المثال ، عكس سلسلة "البرنامج" هو "margorP".

جدول المحتويات

المنطق وراء انعكاس السلسلة في Java:

تتوفر طرق مختلفة لعكس سلسلة ، كل منها يستخدم وظائف منفصلة. على الرغم من اختلاف الطرق المستخدمة ، إلا أن العملية الأساسية وراء انعكاس السلسلة هي نفسها تقريبًا. المنطق النموذجي المستخدم هو:

  • أدخل سلسلة باستخدام إدخال المستخدم أو في التعليمات البرمجية.
  • خذ أحرف السلسلة التي تبدأ من الموضع الأخير واحفظها في أي متغير.
  • اعرض الخرج.

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

طرق مختلفة لعكس السلسلة في Java:

  1. باستخدام StringBuffer أو StringBuilder
  2. باستخدام التكرار العكسي
  3. باستخدام طريقة charAt ()
  4. باستخدام كائن ArrayList
  5. باستخدام العودية
  6. تحويل سلسلة إلى بايت
  7. باستخدام Stack

لنستعرض كل طريقة من هذه الطرق بالتفصيل.

الدورات والمقالات الشعبية في هندسة البرمجيات

البرامج الشعبية
برنامج PG التنفيذي في تطوير البرمجيات - IIIT ب برنامج شهادة Blockchain - PURDUE برنامج شهادة الأمن السيبراني - PURDUE ماجستير في علوم الكمبيوتر - IIIT ب
مقالات شعبية أخرى
راتب Cloud Engineer في الولايات المتحدة 2021-22 راتب AWS Solution Architect في الولايات المتحدة راتب المطور الخلفي في الولايات المتحدة راتب المطور الأمامي في الولايات المتحدة
راتب مطور الويب في الولايات المتحدة الأمريكية أسئلة مقابلة Scrum Master في عام 2022 كيف تبدأ مهنة في الأمن السيبراني في عام 2022؟ الخيارات المهنية في الولايات المتحدة لطلاب الهندسة

1. بواسطة StringBuilder / StringBuffer

تحتوي فئة StringBuffer أو StringBuilder على طريقة مضمنة معكوسة () تعكس الأحرف في السلسلة. يستبدل تسلسل الأحرف بترتيب عكسي. هذه الطريقة هي الطريقة الثابتة التي تنفذ المنطق لعكس السلسلة في جافا .

يعد StringBuffer و StringBuilder فئتين من الأدوات المساعدة في Java التي تدير تخصيص الموارد لعمليات التلاعب بالسلسلة.

باستخدام StringBuffer:

برنامج Java الذي يعكس سلسلة باستخدام StringBuffer:

فئة عامة ExampleofReverseString {

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

String str1 = "Apple" ؛

// يخزن ترتيب السلسلة المعكوس في متغير rev

String rev = new StringBuffer (str1) .reverse (). toString ()؛

// يطبع السلسلة قبل العكس

System.out.println ("\ السلسلة قبل الانعكاس هي:" + str1)؛

// يطبع السلسلة بعد العكس

System.out.println (“السلسلة بعد الانعكاس هي:“ + rev)؛

}

}

انتاج:

السلسلة قبل الانعكاس هي: Apple

السلسلة بعد الانعكاس هي: elppA

في المثال أعلاه ، سيتم تخزين السلسلة التي يتم توفيرها كمدخلات مؤقتًا باستخدام StringBuffer. سيتم بعد ذلك عكسها باستخدام طريقة () العكسية. بعد عكس المخزن المؤقت ، سيتم تحويله إلى سلسلة باستخدام طريقة toString ().

باستخدام StringBuilder:

فئة StringBuilder مفضلة بشكل كبير مقارنة بفئة StringBuffer. إنه أسرع وغير متزامن.

برنامج Java الذي يعكس سلسلة باستخدام StringBuilder:

فئة عامة ExampleofReverseString {

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

String str1 = "مدرسة" ؛

// يخزن سلسلة معكوسة في متغير سرعة الدوران

String rev = new StringBuilder (str1) .reverse (). toString ()؛

// يطبع السلسلة قبل العكس

System.out.println ("\ n سلسلة قبل عكس:" + str1)؛

// يطبع السلسلة بعد العكس

System.out.println (“String after reverse:“ + rev)؛

}

}

انتاج:

السلسلة قبل الرجوع إلى الخلف: المدرسة

السلسلة قبل التراجع: loohcS

في الكود أعلاه ، يتم استخدام كائن فئة StringBuilder. كائنات StringBuilder المقابلة لها كفاءة في الذاكرة ، وقابلة للتغيير ، وسريعة في التنفيذ. يستدعي الكائن طريقة () العكسية المضمنة لتوفير المخرجات المطلوبة.

2. بالتكرار العكسي

برنامج Java الذي يعكس سلسلة باستخدام عكس التكرار:

فئة عامة StringReversal {

سلسلة عكسية عامة ثابتة (سلسلة سلسلة) {

char ch [] = st.toCharArray () ؛

مراجعة السلسلة = "" ؛

لـ (int i = ch.length-1 ؛ i> = 0 ؛ i–)

{

rev + = ch [i] ؛

}

مراجعة العودة

}

}

TestStringReversal للفئة العامة {

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

System.out.println (StringReversal.reverseString ("أنا مدرس")) ؛

System.out.println (StringReversal.reverseString ("أقوم بتدريس مادة اللغة الإنجليزية")) ؛

}

}

انتاج:

أنا rehcaet

أنا hcaet hsilgnE tcejbus

في البرنامج أعلاه للسلسلة العكسية في java ، يتم تخزين أحرف سلسلة الإدخال في متغير rev + بدءًا من الموضع الأخير باستخدام حلقة for. سيتم عرض السلسلة المعكوسة في الإخراج بعد تخزين جميع الأحرف.

يمكنك استخدام while Loop for Reverse Iteration ، ورمزها على النحو التالي:

فئة عامة StringReversal {

الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

String stringInput = "هذه السلسلة" ؛

int StrLength = stringInput.length () ،

بينما (StrLength> 0)

{

System.out.print (stringInput.charAt (StrLength -1)) ،

StrLength– ؛

}

}

}

انتاج:

gnirtS sihT

3. استخدام طريقة charAt ()

برنامج Java الخاص به هو على النحو التالي:

فئة عامة ExampleofReverseString {

العامة الثابتة الفراغ الرئيسي (سلسلة [] 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 ("\ n سلسلة قبل عملية الانعكاس:" + str)؛

// يطبع السلسلة بعد العكس

System.out.println (“سلسلة بعد الانعكاس:“ + revv)؛

}

}

انتاج:

السلسلة قبل عملية الانعكاس: تعلم Java

السلسلة قبل عملية الانعكاس: avaJ nraeL

في برنامج java لعكس سلسلة ، يتم تخزين أحرف سلسلة الإدخال في متغير revv بدءًا من الموضع الأخير باستخدام حلقة for. بعد تخزين جميع الأحرف ، ستنعكس السلسلة المعكوسة في الإخراج.

4. استخدام كائن ArrayList

برنامج Java الخاص به هو على النحو التالي:

استيراد java.util.ArrayList ؛

استيراد java.util.Collections ؛

استيراد java.util.List ؛

استيراد java.util.ListIterator ؛

فئة عامة ExampleofReverseString {

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

String str = "استمتع بالبرمجة" ؛

// يحول سلسلة الإدخال إلى مجموعة أحرف

char ch [] = str.toCharArray () ؛

// يضيف مجموعة أحرف إلى كائن ArrayList

سرد <الحرف> obj = new ArrayList <> () ؛

لـ (char c: ch)

obj.add (ج) ؛

// يمرر كائن ArrayList إلى المجموعات

Collections.reverse (obj) ؛

/ / ينشئ كائن listiterator لتكرار القائمة

ListIterator objnew = obj.listIterator () ،

// يطبع السلسلة قبل الانعكاس

System.out.println ("\ n سلسلة قبل عملية الانعكاس:" + str)؛

// يطبع السلسلة بعد الانعكاس

System.out.println ("\ n سلسلة بعد عملية الانعكاس:")؛

بينما (objnew.hasNext ())

System.out.print (objnew.next ()) ؛

}

}

انتاج:

السلسلة قبل عملية الانعكاس: استمتع بالشفرة

السلسلة بعد عملية الانعكاس: gnidoc yojnE

يقوم برنامج java لعكس سلسلة بتخزين أحرف سلسلة الإدخال في كائن ArrayList. يتم عكسها باستخدام طريقة () العكسي في المجموعات. يتكرر المكرر عبر القائمة ويطبع السلسلة المعكوسة بعد عكسها.

5. استخدام العودية

برنامج Java الخاص به هو على النحو التالي:

فئة عامة ExampleofReverseString {

// يحدد وظيفة الانعكاس

عدد دورات السلسلة (String str) {

// ترجع قيمة خالية إذا كان طول السلسلة صفرًا

إذا (str.length () == 0)

{

إرجاع " "؛

}

// بخلاف ذلك يُرجع الحرف الناتج من الطريقة التالية

عودة str.charAt (str.length () - 1) + revs (str.substring (0، str.length () - 1)) ؛

}

الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

// ينشئ كائنًا من فئة

ExampleofReverseString r = new ExampleofReverseString () ؛

// سلسلة المدخلات

String str = "Master in Java" ؛

// يطبع السلسلة قبل الانعكاس

System.out.println ("\ n سلسلة قبل عملية الانعكاس:" + str)؛

// يطبع السلسلة بعد الانعكاس

System.out.println ("\ n سلسلة بعد عملية الانعكاس:" + r.revs (str))؛

}

انتاج:

السلسلة قبل عملية الانعكاس: إتقان Java

السلسلة بعد عملية الانعكاس: avaJ ni retsaM

يتم إنشاء وظيفة تكرارية في برنامج Java هذا. يتحقق من طول السلسلة وعشرة انعكاسات. يعمل بشكل مماثل لعكس الوظيفة في جافا .

6. بتحويل سلسلة إلى بايت

يستخدم الأسلوب getBytes () الذي يحول أو يقسم سلسلة الإدخال إلى بايت. في تلك اللحظة ، يساوي طول صفيف البايت طول سلسلة الإدخال. ثم يحصل البرنامج على البايت بترتيب عكسي ويحفظها في مصفوفة بايت جديدة.

في التعليمات البرمجية التالية ، يتم إنشاء مصفوفة بايت بشكل مؤقت. يتم إنشاء المصفوفات ثنائية البايت - أحدهما لتخزين البايت المحول والآخر لحفظ النتيجة بترتيب عكسي.

برنامج Java الخاص به هو على النحو التالي:

public static void main (String [] arg) {

String inputvalue = "Computer" ؛

بايت [] strByteArray = inputvalue.getBytes () ،

بايت [] نتيجة = بايت جديد [strByteArray.length] ؛

// ينتج عن المتاجر ترتيب عكسي في بايت النتيجة []

لـ (int i = 0 ؛ i <strByteArray.length ؛ i ++)

النتيجة [i] = strByteArray [strByteArray.length - i - 1] ؛

System.out.println ("السلسلة بعد العملية العكسية هي:" + سلسلة جديدة (نتيجة))؛

}

انتاج:

السلسلة بعد العملية العكسية هي: retupmoC

7) باستخدام Stack

تتضمن هذه الطريقة الخطوات التالية لعكس سلسلة Java باستخدام بنية بيانات Stack.

  1. إنشاء مكدس بدون أحرف.
  2. قم بتحويل سلسلة إدخال إلى مصفوفة أحرف باستخدام أسلوب String.toCharArray (). بعد ذلك ، يضيف كل حرف إلى المكدس.

ثالثا. استرجع الأحرف من المكدس حتى يصبح فارغًا ثم قم مرة أخرى بتعيين الأحرف في مصفوفة أحرف. لذا ، ستصل الشخصيات الآن بترتيب عكسي.

  1. يتم تحويل مصفوفة الأحرف إلى سلسلة باستخدام String.copyValueOf (char []) وإرجاع السلسلة الجديدة في النهاية.

برنامج Java الخاص به هو على النحو التالي:

استيراد java.util.Stack ؛

فئة الرئيسية

{

عكس السلسلة العامة الثابتة (String str)

{

// يتحقق ما إذا كانت السلسلة فارغة أم خالية

إذا (str == null || str.equals (“”)) {

شارع العودة

}

// يولد كومة فارغة من الأحرف

مكدس <حرف> مكدس = مكدس جديد <حرف> () ؛

// يضيف جميع أحرف سلسلة الإدخال إلى المكدس

char [] ch = str.toCharArray () ؛

لـ (int i = 0 ؛ i <str.length () ؛ i ++) {

stack.push (ch [i]) ؛

}

// يبدأ من الفهرس 0

كثافة العمليات م = 0 ؛

// يسترجع الأحرف من المكدس حتى يصبح فارغًا

بينما (! stack.isEmpty ())

{

// يعيد كل حرف مسترجع إلى مصفوفة الأحرف

ch [m ++] = stack.pop () ؛

}

// يحول مصفوفة الأحرف إلى سلسلة ويعيدها

إرجاع String.copyValueOf (ch) ؛

}

الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

String str = "ابتكار التكنولوجيا" ؛

str = عكس (str) ؛

System.out.println ("عكس سلسلة الإدخال:" + str) ؛

}

}

انتاج |

عكس سلسلة الإدخال: ygolonhceT noitavonnI

ابدأ برحلة Java الخاصة بك مع UpGrad

إذا كنت تريد تعلم Java ، فيجب أن تفهم مفاهيم Core Java. لذلك ، يمكنك متابعة برنامج UpGrad's Master of Science في علوم الكمبيوتر . وهو يغطي موضوعات مثل Core Java ، ومفاهيم OOPS ، والكائنات ، والفئات في Java ، والطرق في Java ، و Java Virtual Machine ، وتعدد الأشكال ، والوراثة ، والتجريد ، والتغليف ، وما إلى ذلك ، ستحصل على إرشادات خبراء الصناعة. يقوم هؤلاء الخبراء بإجراء جلسات تفاعلية حية تغطي المناهج الدراسية والمواضيع المتقدمة.

ما هي أبسط طريقة لعكس سلسلة في Java؟

إن أبسط طريقة لعكس سلسلة في Java هي استخدام فئة StringBuffer. وهو يدعم طريقة تُعرف باسم "عكس" () تعكس محتويات كائن StringBuffer الحالي وتعيد كائن StringBuffer الناتج.

ما هي الطريقة العودية في جافا؟

الطريقة التي تستدعي نفسها تسمى الطريقة العودية في Java. تسمى العملية المقابلة العودية.

ما هي تطبيقات String في Java؟

في Java ، يمكن استخدام السلاسل النصية لاكتشاف الانتحال في الرموز. يمكن استخدامها للترميز وفك التشفير لنقل البيانات بأمان من المرسل إلى المتلقي. تساعدك تطبيقات السلسلة في استرداد المعلومات من مصادر البيانات المجهولة. علاوة على ذلك ، توفر لك السلاسل النصية وتطبيقات الخوارزميات الخاصة بها عوامل تصفية محسّنة لحل مشكلة التداخل التقريبي للبادئة اللاحقة.