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

مشكلة في كود البحث

بدأه A33 في 3 مايو 2009 · 10 رد · 756 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

أخواني أنا عندي مشكلة في كود البحث (search the word )

وبعد عندي مشكله في الكود بس ما أعرف شو هي بضبط ... يعني جزء من الكود ما يشتغل لما أعرضه على terminal window ؟؟؟؟؟؟؟

هذا الكود مع محاولتي في جزء كود البحث ...

public class StringManipulation
{

   public static void main( ){
		InputReader reader = new InputReader();
		 boolean finished = false;
		printwelcome();

		while(!finished) {
			String input = reader.getInput(); 
			if(input.startsWith("bye")) {
				finished = true;
			}
			else { 
				System.out.println(input);
				input=input.trim();
				System.out.println(" The input after useing trim() method"+input);
				System.out.print("Input a word to check it with our System: "); 
				String s = reader.getInput(); 
				boolean ok = input.equals(s);
				if (ok)System.out.println("The input is equal to  "+s);
				else System.out.println("The input is not equal to "+s);
				input = input.toLowerCase();
				System.out.println(" The input after useing toLowerCase method"+input);
				String word[] = input.split(" / ");
				System.out.println(" THe number of words in the input is  = " +word.length);
				for (int i=0; i<word.length; i++)
				  System.out.println(" [" +i+"] "+word);

((هذا جزء كود البحث ... انا جربت لما ايدخل اليوزر كلمة معينه الي هي موجودة بين قوسين " hello" يبحث عنها إذا حصلها راح يكتب it is found وإذا لا راح يكتب the system can't find the word ... )) أتمنى إني قدرت أوصل الكم المطلوب ^^

int count = input.length;
				for(int i = 0; i < count; i++) 
				if(input.equals(“ Hello”)) {	  
				System.out.println(“it is found”); break;}   
				else System.out.println("the system can't find the word ");
			}
		}
		printGoodbye();
	}


	static void printwelcome()
	{
		System.out.println("Welcome to the String Manipulation software developing system.");
		System.out.println("Please type youe string");
		System.out.println(" Please tell us about your problem");
		System.out.println("We will mainpulate your String useing string method.");
		System.out.println("Please type 'bye' to exit our system.");
	}


	static void printGoodbye()
	{
		System.out.println("take care. Bye...");
	}


}

أتمنــــــــــــــــــــــــــــى المساعدة منكم أخواني

وجزاكم الله كل الخير ان شاء الله

......

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 3 مايو 2009 في 02:42 — السبب: إضافة الوسم code

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

شخصيا لم أفهم المشكل جيدا


for(int i = 0; i < count; i++)
if(input.equals(“ Hello”)) {
System.out.println(“it is found”); break;}
else System.out.println("the system can't find the word ");
int count = input.length;

ماذا تعنين بهذه السطور؟؟

هل البحث يكون دائما عن كلمة hello

وماذا تعنين بهذا السطر؟؟

String word[] = input.split(" / ")

المرجو التوضيح

#3
herch كتب:

السلام عليكــم ورحمـة الله وبركاتــه ،،

شخصيا لم أفهم المشكل جيدا


for(int i = 0; i < count; i++)
if(input.equals(" Hello")) {
System.out.println("it is found"); break;}
else System.out.println("the system can't find the word ");
int count = input.length;

ماذا تعنين بهذه السطور؟؟

هل البحث يكون دائما عن كلمة hello

<<<< في هذه الحاله نعم دائما يكون البحث عن كلمة hello

>>> وهذا الكود كمجرد تجربة ما أعرف إذا كان صحيح أو لا ..

وماذا تعنين بهذا السطر؟؟

String word[] = input.split(" / ")

المرجو التوضيح

...

هذا السطر وعلى حسب ما فهمت من شرح الاستاذ أنه يقسم الجملة بهذه العلامة (/)

معناها فصل كلمات الأنبت عن بعضها البعض بالعلامه الي بين القوسين.split لانه قال النا ....

وهذي الصورة اتوضح الدرس .... ,,, يمكن تساعدك على فهم مشكلتي ... لأني يمكن ما قدرت أوصلها بشكل واضح ...

580934273.jpg

ومشــــــــــــــــكور أخوي على جهدك .... وتفاعلك مع المشكله ..

وأعتذر على تعبك معانا ....

#4

الدالة split تقوم بعمل StringToknizer

والذي هو تقسيم النص إلى كلمات

على أية حال الدالة تاخذ مقطع تقوم على أساسة بتقسيم النص

أنتي هنا استخدمتي العلامة \

لكن لتقسيم نص عادي استخدمي مسافة فقط

String word[] = input.split(" ");

بأمانة لم أفهم مشكلتك بشكل جيد

لذا أرجو إعادة الصياغة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#5

السلام عليكــم ورحمـة الله وبركاتــه ،،

هل تريدين تقسيم الجملة حسب الفراغات "space" أو الرمز "/" ؟؟

لأنه إذا كنت تنوين تقسيم الجملة حسب الفراغات، فتذكري أنك قمت بعمل trim يعني لم تبق أية فراغات

تم تعديل هذه المشاركة بواسطة herch في 3 مايو 2009 في 02:54

#6

صحيح كلامك أخ herch

نقطة أخرى الدالة equal ستقارن حرفياً وأنتي تضعين فيها فراغات وهذا مالن يحدث مطلقاً

لاحظت أنك استخدمت input مع أن المتغير input عبارة عن String تأكدي من هذه النقطة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

أكرر إعتـــــــــــــــــــــــــــــــــــــــــــــذاري ...لعدم استطاعتي ايصال المشكلة بشكل واضح ...

استخدمنا نحن في هذا الكود أكثر من شيء الي لهم علاقة ب string

مثل :

startswith()

.equals()

.LowerCase

.split()

.trim()

.length

وبعد ما خلص الكلاس ... قال النا الاستاذ انا نحن انحاول نستخدم search for a word بهذا الكود كجزء من التدريب ولكن ما وضح لنا وااايد شو يقصد ...بس قال حولوا انكم ادخولوا search للكود .... والله ايسامحه ما شرح النا شو يقصد ولا ما كنا اتبهدلنا ..... 0_0

فأنا جربت الكود السابق كتخمين مني

,وجزاكم أخواني خير الجزاء على تعبكم معانا ........

#8

..... مشكــــــــــــــــــــــــــــــــورين أخواني الاستاذ علاء الصالحــــــــــــــــــــي والاستاذ hearch

>>>> حاولت أعدل الكود على حسب ملاحظاتكم ....

......

جزاكم الله خيرا... وفي ميزان حسناتكم ان شاء الله

جاري التعديـــــــــــــــــــــــــــــــــــــــــــــل

#9

السلام عليكــم ورحمـة الله وبركاتــه ،،

أولا أظن أنه من الأفضل أن تحتفظي بما كتب المستعمل كما هو، وتقومي بالتغييرات في متحولات جديدة


<span class="postcolor">input = reader.getInput();
....
....
inputWithoutSpaces = input.trim();
....
inputLowerCase = input.toLowerCase();
</span>
String input, inputWithoutSpaces, inputLowerCase;

هكذا فإن المتغير input سيحتفظ بالفراغات

لتقسيم الجملة حسب الفراغات (space)

String words[] = input.split(" ");

الناتج نحتفظ به في المصفوفة

كتابة محتوى المصفوفة، أي الكلمات التي تكون الجملة التي أدخلها المستعمل


System.out.println(" [" +i+"] "+words);
for (int i=0; i<words.length; i++)

بالنسبة للبجث عن الكلمة


for(int i = 0; i < count; i++)
if(words.equals("Hello")) {
System.out.println("it is found");
break;
}
else
System.out.println("the system can't find the word ");
int count = words.length;

#10

جــــــــــــــــــــــــــــزاكم الله كل خيـــــــــــــــــــــــــر أخوانـــــــــــــــــــــــــــني ....

>>>>>>>>>>>>>>>>>>>>>>>> مشكــــــــــــــــــــــــــــــــــــــــــــــــور أخوي hearch على تعبك و محاولتك لففهـــــــــــم المشكـــــــلة ....

إن شاء الله وبإذن الله بحاول أطبق كل الملاحظــــــــــــات وأتمنــــــــــــــــ~~~~ـــــــى أن المشكلة تنحـــــــــــــــــــــل .....

وإن شـــــــــــــــــــاء الله في ميــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــزان حسناتكم ......... على مساعدتكم لنا

#11

على الرحب والسعة أختاه

وإذا ظهرت لك أية مشاكل أخرى أطلعينا وسنحاول حلها معك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

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