[Java] الطرق المختلفة لفحص النصوص و الارقام و التاكد من انها قيم متناظرة أم لا Palindrome In Java
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع حزم الجافا java package
صفحة 1 من اصل 1 • شاطر
[Java] الطرق المختلفة لفحص النصوص و الارقام و التاكد من انها قيم متناظرة أم لا Palindrome In Java
اهلا بكم
تحقق ما إذا كان النص أو الرقم المعطى متناظر أم لا؟ ...من أكثر الاسئلة التى تواجه الطلبة الاكاديميين وهناك عدة طرق لفعل ذلك ...فى هذا المقال سنحاول شرحها
ما هو التناظر ؟
الارقام أو الكلمات او حتى الجمل المتناظرة هى التى يمكنك قرائتها من اليمن أو من الشمال و تعطيك نفس النتيجة بمعنى أخر هو نفس الرقم او الكملة بشكل عسكي على سبيل المثال 545 ، 151 ، 34543 ، 343 ، 171 ، 48984 هي أرقام متناظرة ....ليبيا , Radar, Madam كلمات متناظرة ...ومن الجمل المتناظرة Was it a car or a cat I saw
كيف يمكن كتابة برنامج JAVA لفحص النص او الرقم المعطى متناظر أم لا ؟
توجد عدة طرق لفعل ذلك على النحو التالى :
1_باستخدام التحقق من طول المدخلات
فى هذه الطريقة يتم التحقق من طول المدخلات. إذا كان طول الكلمة أو النص هو صفر أو واحد ، فسيتم إرجاع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]. إذا كان طول النص المدخل أكثر من واحد ، فإنه يتحقق من مساواة طرفي النص. إذا لم يكن كلا الطرفين متساويين ، فيُرجع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]. إذا كان كلا الطرفين متساويين ، فستتم إعادة الاتصال مرة أخرى باستخدام أحرف من كلا الطرفين.
2_باستخدام الطريقة StringBuffer
تمتلك الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الاسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الذى يقوم بعكس النص المعطى الية حيث يتم عكس النص المحدد باستخدام أسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] . فإذا كانت السلسلة الأصلية والسلسلة المعكوسة متشابهتين ، فان النص يكون متناظر و العكس صحيح ...ويتم ذلك على النحو التالى :
3_ استخدام الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
منذ الاصدار 8 للجافا يمكنك استخدام الدالة أو الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] للتحقق مما إذا كانت السلسلة المعطاة متناظرة أم لا وذلك على النحو التالى :
4_ الطريقة الاخيرة و التى تسخدم فى الارقام فقط
تحقق ما إذا كان النص أو الرقم المعطى متناظر أم لا؟ ...من أكثر الاسئلة التى تواجه الطلبة الاكاديميين وهناك عدة طرق لفعل ذلك ...فى هذا المقال سنحاول شرحها
ما هو التناظر ؟
الارقام أو الكلمات او حتى الجمل المتناظرة هى التى يمكنك قرائتها من اليمن أو من الشمال و تعطيك نفس النتيجة بمعنى أخر هو نفس الرقم او الكملة بشكل عسكي على سبيل المثال 545 ، 151 ، 34543 ، 343 ، 171 ، 48984 هي أرقام متناظرة ....ليبيا , Radar, Madam كلمات متناظرة ...ومن الجمل المتناظرة Was it a car or a cat I saw
كيف يمكن كتابة برنامج JAVA لفحص النص او الرقم المعطى متناظر أم لا ؟
توجد عدة طرق لفعل ذلك على النحو التالى :
1_باستخدام التحقق من طول المدخلات
فى هذه الطريقة يتم التحقق من طول المدخلات. إذا كان طول الكلمة أو النص هو صفر أو واحد ، فسيتم إرجاع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]. إذا كان طول النص المدخل أكثر من واحد ، فإنه يتحقق من مساواة طرفي النص. إذا لم يكن كلا الطرفين متساويين ، فيُرجع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]. إذا كان كلا الطرفين متساويين ، فستتم إعادة الاتصال مرة أخرى باستخدام أحرف من كلا الطرفين.
- الكود:
public class Test1 {
static boolean isItPalindrome(String S)
{
//اذا كان النص اقل من حرفين فمعنى ذلك انه متناظر ويتم ارجاع ذلك
if(S.length() < 2)
{
return true;
}
else
{
//التحقق من مساواة طرفى النص
if(S.charAt(0) != S.charAt(S.length()-1))
{
//اذا كان الطرفين غير متساويات يتم ارجاع خاطئ
return false;
}
else
{
//اذا كان الطرفين متساويين يتم ارجاع الطريقة يتم حذف الطرفين ثم العودة لفحص الطرفين الجديدن
return isItPalindrome(S.substring(1, S.length()-1));
}
}
}
public static void main(String[] args) {
String S ="Rotator";
//قبل التاكد من النص نقوم بحذف اى فارغ قد يوجد ونفى حالة الاحرف حتى نتمكن من مقارنة النص سواء كان باحرف كبيرة او صغيرة
String cleanInputString = S.replaceAll("\\s+", "").toLowerCase();
if (isItPalindrome(cleanInputString))
{
System.out.println(" is a palindrome");
}
else
{
System.out.println(" is not a palindrome");
}
}
}
2_باستخدام الطريقة StringBuffer
تمتلك الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الاسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الذى يقوم بعكس النص المعطى الية حيث يتم عكس النص المحدد باستخدام أسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] . فإذا كانت السلسلة الأصلية والسلسلة المعكوسة متشابهتين ، فان النص يكون متناظر و العكس صحيح ...ويتم ذلك على النحو التالى :
- الكود:
public class Test1 {
public static void main(String[] args) {
String S ="Rotator";
// استخدام الطريقة لعكس النص المدخل
String S2 = new StringBuffer(S).reverse().toString();
//مقارنة النص الاصلى مع النص المعكوس للتاكد المساواة بينهم من عدمة
if (S.equalsIgnoreCase(S2))
{
System.out.println(" is a palindrome");
}
else
{
System.out.println(" is not a palindrome");
}
}
}
3_ استخدام الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
منذ الاصدار 8 للجافا يمكنك استخدام الدالة أو الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] للتحقق مما إذا كانت السلسلة المعطاة متناظرة أم لا وذلك على النحو التالى :
- الكود:
import java.util.stream.IntStream;
public class Test1 {
public static void main(String[] args) {
String S ="Rotator";
boolean isItPalindrome = IntStream.range(0, S.length()/2).
noneMatch(i -> S.charAt(i) != S.charAt(S.length() - i -1));
if (isItPalindrome)
{
System.out.println(" is a palindrome");
}
else
{
System.out.println(" is not a palindrome");
} }
}
4_ الطريقة الاخيرة و التى تسخدم فى الارقام فقط
- الكود:
public class Test1 {
public static void main(String[] args) {
int n = 171;
int sum = 0, r;
int temp = n;
while(n>0)
{
r = n % 10;
sum = (sum*10)+r;
n = n/10;
}
if(temp==sum)
System.out.println("It is a Palindrome number.");
else
System.out.println("Not a palindrome");
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: التعامل مع حزم الجافا java package
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد