في لغة جافا، لايمكننا تغيير قيمة محرف ضمن متغير من نمط String لأنه immutable وقيمته تبقى كما هي من وقت إسناد أول قيمة. فقط نستطيع إضافة له باستخدام +. وكل الدوال تعيد سلسة نصية جديدة أي لا تعدل على S بل تقوم بإنشاء سلسلة جديدة و تسند قيمتها للمتغير S أي القيمة (الكائن القديم) يهمل ويفقد قيمته.
يمكن استخدام String Builder وهو صنف قابل لتعديل القيم فيه.
StringBuilder myName = new StringBuilder("wael");
myName.setCharAt(0, 'x'); // تبديل أول حرف
// char last_char = // اجلبي آخر حرف وضعيه مكان
// x في السطر السابق
// myName.setCharAt(0, last_char);
System.out.println(myName); // xael
ولاحظي أن المحرف الأول في السلسلة هو 0 وليس 1 (لديك خطأ في طباعة أول محرف)
الدالة replace تبدل جميع القيم التي تساوي الحرف الأول بالثاني وغير مناسبة هنا.
بالنسبة للطلب B:
الأحرف في لغات البرمجية متتالية في القيم، أي B هي عبارة عن A + 1 ..
حيث يتم التعامل مع الأحرف كأرقام حسب جدول ASCII يمكنك البحث عنه،
فالحرف التالي للحرف الحالي هو ناتج جمع 1
A = 65 => B => 66 => C = 67
a = 97 => b => 98 => c = 99