جافا ......string to array to string


(عبدالله) #1

اكيد من يبدأ منكم بالبرمجة يبدأ بالتلاعب بالاكواد وكتابة برامج صغير ربما سطر او سطرين …
اليوم سنأخذ موضوع دسم قليلا وهو تحويل النص الى مصفوفه بشكل مقلوب ثم تحويله لنص مرة اخرى :+1:
###اليكم الكود كاملا :

    String name = "abdullah";
   int t = 0;
   char c [] = new char [name.length()];
   for (int i = name.length()-1 ; i >= 0; i--){
    c[t] = name.charAt(i);
    t++;   
   }
   String s = new String(c);
   System.out.print (s); 

###الان سأقوم بشرحه سطرا سطرا :sweat_smile:

في اول سطر قمنا بتعريف متغير نصي واسميناه name وقيمته abdullah

String name = "abdullah";

في السطر الثاني قمنا بوضع متغير رقمي واسميناه t وقيمته 0

   int t = 0;

في السطر الثالث قمنا يوضع متغير حرفي واسميناه c نوعه مصفوفة وطوله بطول المتغير name وهنا استخدمنا name.length و .length معناها طول النص رقما بمعناه name سيكون طوله 8 لانه يتكون من ثمانية احرف

   char c [] = new char [name.length()];

السطر الرابع عبارة عن جملة تكرارية for وقمنا بتعريف المتغير i وقيمته طول المتغير name ناقصا واحد 1- لسبب بسيط وهو (ان .length يعطي قيمة النص رقما ويبدا من 1 بينما المصفوفات تبدا من 0 اي لو شغلنا البرنامج ستصبح هناك مصفوفة دون قيمة وسيظهر خطأ) ثم سيقوم بالمقارنة بين i وهل هو اكبر او يساوي صفر …ثم يقوم بانقاص قيمة i بواحد i–

   for (int i = name.length()-1 ; i >= 0; i--){

السطر الخامس يقوم بتعبأة المصوصفة c باحرف القيمة النصية name عن طريق .charAt وهذا الميثود يقوم بتعيين حرفي لنص معين …

c[t] = name.charAt(i);

السطر السادس بسيط وهو عمل زيادة في التكرار للمتغير t

 t++;  
   }

في السطر السابع قمنا بعمل متغير نصي جديد اسميناه s وقيمته نص جديد احرفه تتكون من المصفوفة c

   String s = new String(c);

في السطر الثامن قمنا بطباعة المتغير s

   System.out.print (s); 

الخلاصة (الزبدة):
في كل تكرار ل for نقوم بوضع قيمة في c بشكل تصاعدي من 0 الى نهاية الرقم … بينما القيمة المأخوذة من النص نأخذها بطريقة عكسية من اخر حرف في النص الى الحرف الاول …وهكذا صار النص مقلوباَ …

تمنايتي لكم بيوم سعيد :tulip:


المصفوفات في لغة جافا | Arrays in Java
(Bashar963) #2

ههههه فكرة حلوه بس لازم تدقق على الكود لديك بعض الاغلاط الاملائيه


(عبدالله) #3

طبقت الكود قبل ان اطرحه هنا ولم تواجهني مشاكل …