الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عندي سوئ فهم مع ال String

بدأه Eng.Fedail في 22 يوليو 2008 · 3 رد · 605 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
 import javax.swing.*;
public class Array1 {

	public static void main(String[] args) {

		String input1[][];

		for(int i=0;i<5;i++)
		{
			for(int j=0;j<5;j++)
			{
				input1[j]=	JOptionPane.showInputDialog("enter lette");
				if (input1[j]=='a')	input1[j]="*";
			}
		}
	JOptionPane.showMessageDialog(null,input1);
	}
}

اللي لونه بالأحمر

عطول تواجهني مشاكل بعمليات المقارنه أو بأستعمال الـ string أو مقارنته

هل بالأمكان توضيح اللبس اللذي لدي

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#2

السلام عليكم

عندي ملاحظة :

تعريف مصفوفة في الجافا يكون كالتالي :

String input1[][] = new String[row][column];

هناك خطأ أخي الكريم في السطر الذي وضحته بالون الأحمر , حيث يشير إلى عملية مقارنة بين متغير نصي String وهو input1[j] , وبين

حرف وهو 'a' و هذا لا يجوز .

الحل هو :-

1- إما ان تغير نوع المصفوفة من مصفوفة نصية String إلى مصفوفة حروف char و تقوم بوضع فيها حروف و ليس نصوص ... مثال :

char input1[][] = new char[row][column];

وهكذا تستطيع المقارنة بكل سهولة لانه سيكون متغير حرفي مع متغير حرفي اخر.

وتصبح كالتالي :

if(input[j] == 'a')

أو

2- ان تبقي المصفوفة كما هي , لكن عليك ان تحول الحرف إلى نص , اي تحول الحرف 'a' إلى نص "a".

هناك طريقتين للتحويل من حرف إلى نص :

Charcter.toString('a')

أو

"" + 'a'

لكن هناك شيء اخر , لا يجوز مقارنة متغيرين نصيين اي من نوع String مع بعضهما بإشارة التساوي = ... إذا ما الحل ؟؟

الحل ان تسخدم دالة مقارنة اسمها equals كالتالي :

if(input[j].equals(""+'a'))

أو

3- ايضا ان تبقي المصفوفة كما هي , لكن عليك ان تحول المتغير النصي إلى متغير حرفي , اي تحول المتغير النصي input1[][] إلى متغير حرفي .

ملاحظة هامة جدا :

المتغير الحرفي لا يمكنه إلا ان يخزن حرف واحد فقط :

char x = 'a'  correct
char x = 'ab' incorrect

لذلك يجب عليك ان تضمن ان قيمة input1[][] لا تحتوي على أكثر من حرف حتى نستطيع تحويلها إلى متغير حرفي .

خلاصة الأمر ///

انا سأعتمد الحل الثاني كالتالي

import javax.swing.*;
public class Array1 
{

	public static void main(String[] args) 
	{
		String input1[][];
		for(int i=0;i<5;i++)
		{
			for(int j=0;j<5;j++)
			{
				input1[j] = JOptionPane.showInputDialog("enter lette");
				if (input1[j].equals("" + 'a'))	
				input1[j]="*";
			}
		}
		JOptionPane.showMessageDialog(null,input1);
	}
}
#3

فديت قلبك يالغالي والله أنك كفيت ووفيت

الحين صارت الصوره واضحه

واعذرني حبيت اتعلم اللغه وآخذ فكره عنها مع اني بعيد كل البعد عنها

ربي يوفقك دنيا وآخره

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#4

تحياتي أخي ..

ونحن في الخدمة دائما .

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…