البرمجة

تحسين برنامج التشفير: عكس كلمات الجمل بشكل صحيح في Java

في البداية، يبدو أن الكود الذي قدمته يحاول تنفيذ عملية عكس النص الذي يتم إدخاله. ومع ذلك، يوجد خطأ في تنفيذ هذه العملية، مما يؤدي إلى الناتج الذي لا يتوقعه المستخدم.

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

لتحقيق الهدف المرجو، يجب تنفيذ العكس على كل كلمة على حدة وثم إعادة تركيب النص. يمكن تحقيق ذلك بتعديل الكود كما يلي:

java
import java.util.StringTokenizer; import java.util.Scanner; public class LessNaiveEncryption { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); System.out.print("Provide an input sentence: "); String userInput = keyboard.nextLine(); StringTokenizer strTokenizer = new StringTokenizer(userInput, " ", true); System.out.print("The output sentence is : "); StringBuilder reversedSentence = new StringBuilder(); while (strTokenizer.hasMoreTokens()) { String token = strTokenizer.nextToken(); if (!token.equals(" ")) { // تجنب عكس الفواصل StringBuilder word = new StringBuilder(token); word.reverse(); reversedSentence.append(word); } else { reversedSentence.append(" "); } } System.out.println(reversedSentence); System.out.print("\n"); } }

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

المزيد من المعلومات

بالطبع، دعوني أقدم لك مزيدًا من المعلومات حول الكود وكيف يتم تحسينه لتحقيق النتائج المتوقعة.

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

التحسينات التي أُدخلت إلى الكود تهدف إلى معالجة الخطأ الرئيسي الذي كان يؤدي إلى النتائج الغير متوقعة. تم استخدام StringBuilder لبناء الجملة المعكوسة، وتم إضافة كل كلمة بشكل فردي، وتجنب عكس الفواصل.

السطور التي تلي الحلقة while تقوم بتشكيل النتيجة النهائية. يتم استخدام reversedSentence كـ StringBuilder لتجميع الكلمات المعكوسة بشكل صحيح، مع الاحتفاظ بترتيب الفواصل بينها.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر