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

حذف كل شي قبل delimeter

مغلق
بدأه TheNewLeader في 12 يونيو 2006 · 11 رد · 937 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

اخواني عندي سوال

كيف ممكن احذف كل شي قبل ال dilemiter

سواء كانت / او ، او غيره

عندي ملف في عدة اسطر مثل هذا

jone/name Britin/country 50/weight 170/tall 1987/date of birth

computer/ major fottball/fav sport

واريد التخلص من كل شي قبل ال /

حتى يكون الناتج

name country weight tall date of birth

major fav sport

السوال الثاني

لو كان عندي جملة بهذه الطريقة

Ahmed/NAME Lebnon/COUNTRY 23/AGE computer/MAJOR

واود ان اتخلص من كل الكلمات التي لا تتكون كل حروفها من Capital letters

اعني ان Ahmed

ستحذف وتبقى

NAME

وهكذا ...

#2

String

استخدم الاساليب على String مثل replace

واذا لم تستطع ارني محاولتك لكي اساعدك

تم تعديل هذه المشاركة بواسطة مجدي محمود في 12 يونيو 2006 في 10:26

لست متواجد بشكل يومي

#3

قم بتحويل الجملة إلى مصفوفة حروف

ثم أجري عليها المثيود iLetter()

فإن كانت تعطي true

تعملها concat في جملة جديدة

وشكراً

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

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

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

728x90.png

#4

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

انا خلصت الكود

وهو كالتالي

هو يعتمد على تجزئة الكلمات أولا حسب ال

Delimeter /

ومن ثم يقوم بأخذ الكلمات ويقوم بتقسيمها حسب المسافة

ثم يعكس الجملة ويبحث عن أول مسافة ويحذف ماقبلها

على فرض انه ماقبل

delimeter

والمراد حذف عبارة عن كلمة مترابطة لا يوجد بينه مسافة

جربه على اي جملة ثانية وان شاء الله راح ينجح

import java.util.*;
public class Tokenizer {
	public static  void main (String args[]){
		String all="";
		String sub="";
		String reverse="";
		StringTokenizer tokens=new StringTokenizer(
			"jone/name Britin/country 50/weight 170/tall 1987/date of birth computer/major fottball/fav sport","/");

		while(tokens.hasMoreTokens()){
			sub=tokens.nextToken();
			//System.out.println(sub);
			   StringTokenizer tokens1=new StringTokenizer(sub);
			   int temp1=tokens1.countTokens();
					while (tokens1.hasMoreTokens()){
						String temp=tokens1.nextToken();

						reverse=temp+" "+reverse;

					}
					//if it has more than 2 words 
					if (temp1>2){

					reverse=reverse.substring(reverse.indexOf(" ")+1);
					System.out.println(reverse);
					StringTokenizer tokens2=new StringTokenizer(reverse);
					String newReverse=" ";
								while(tokens2.hasMoreTokens()){

									String temp2=tokens2.nextToken();
									newReverse=temp2+" "+newReverse; 			 
								}
								all+=" "+newReverse.trim();
								reverse="  ";
								}
					if (tokens.countTokens()!=0)
					all+=reverse.substring(reverse.indexOf(" "),reverse.length()-1);
					else
					all+=" "+sub;


					reverse="";
		}

		System.out.println(all.trim());


	}
}

الكود الثاني سهل

بس على فكرة يعتبر الارقام

Capital letters

انت شو رايك بدك الارقام تكون حروف كبيرة ولا صغير ؟؟؟؟؟؟

import java.util.*;
public class Capital{
	public static void main(String args[]){
		String all="";
		String sub="";
		StringTokenizer tokens=new StringTokenizer(
			"Ahmed/NAME Lebnon/COUNTRY 23/AGE computer/MAJOR","/",true);
			while(tokens.hasMoreTokens()){
				sub=tokens.nextToken();
				   StringTokenizer tokens1=new StringTokenizer(sub);
					while(tokens1.hasMoreTokens()){
						stop:{


						sub=tokens1.nextToken();
						for(int i=0;i<sub.length();i++){

						if(Character.isLowerCase(sub.charAt(i)))
						break stop;
						}
						all+=" "+sub;
					}}
			}
  System.out.println(all);
	}
}
#5

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

شكرا لكم اخوتي

مجدي محمود

alaadiaa

silentboy

بالحقيقة silentboy انا عملت التقسيم للجملة مثل ما كتبته لكني فكرت في

("/")indexOf

يعني امسح كل شي قبل هذا لكن لم تظبط بعد

على فكرة حاولت وضع الكود الذي استخدمته

عملت له لصق ثم ظللته واستخدمت علامة كود لكن لم ينفع

ولو وضعته مباشرة شكله مش حلو

اخي الكريم silentboy

ساجرب ما كتبته مشكورا

واكيد راح يكون عندي اسئلة لك ارجو المشاركة معي لاحقا

بارك الله في علمك ووقتك ونغع بك

بالنسبة لسؤالك

اقتباس
الكود الثاني سهل

بس على فكرة يعتبر الارقام

Capital letters

انت شو رايك بدك الارقام تكون حروف كبيرة ولا صغير ؟؟؟؟؟؟

لأ يهم لاني اريد ما تمثله هذه الارقام تاريخ الميلاد او سنة دخول الجامعة الراتب وغيره لاني لا اتعامل مع الارقام مباشرة بل مع ما تعنيه الارقام

#6

السلام عليكم

الاخ theNewLeader

انا راح أحاول بالفكرة بس بردو لازم بدها StringTokenizer

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

حياك الله اخي انا حاضر لاي استجواب لانه الكود مش مشروح بس حاول تفهمه لوحدك أحسن

#7

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

اخي silentboy

نعم انا قصدت بالتقسيم StringTokenizer

ثم لكل token

استخدم

stringof

لم اكتب اسئلتب بعد

يجب ان اجلس مع الكود قليلا

شكرا ع التوضيح

#8

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

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

حياك الله اخي انا حاضر لاي استجواب لانه الكود مش مشروح بس حاول تفهمه لوحدك أحسن

اخي هل ال defualt

أنو يعتبر الارقام capital

كيف ممكن اخليه يتجاهلها كأي كلمة ليست جميع حروفها Capital؟؟

#9

السؤال الاول

public static void NewLeader(String something) {

		something = something.replace("/", " ");

		StringTokenizer st = new StringTokenizer(something);

		Vector<String> v = new Vector<String>();

		while (st.hasMoreTokens()) {

			String temp = st.nextToken();
			if (isNumber(temp) == false) {
				v.add(temp);
			}

		}
		String output = "";
		for (int i = 0; i < v.size(); i++) {
			output += " " + v.elementAt(i).toLowerCase();
		}
		System.out.println(output);
	}

	public static boolean isNumber(String input) {

		boolean ok = false;
		try {
			Double.parseDouble(input);
			ok = true;
		} catch (NumberFormatException e) {
			ok = false;
		}
		return ok;
	}

السؤال الثاني

public static void newLeader(String something) {

		something = something.replace("/", " ");

		StringTokenizer st = new StringTokenizer(something);

		Vector<String> v = new Vector<String>();

		while (st.hasMoreTokens()) {
			v.add(st.nextToken());

		}
		String output = "";
		// remove numbers from String
		for (int i = 0; i < v.size(); i++) {
			if (isNumber(v.elementAt(i)) == true) {
				v.remove(i);
			}
		}
		for (int i = 0; i < v.size(); i++) {
			String tmp = v.elementAt(i).toUpperCase();

			if (tmp.equals(v.elementAt(i))) {
				output += " " + v.elementAt(i);
			}

		}

		System.out.println(output);
	}

لست متواجد بشكل يومي

#10

السلام عليكم

تم اختصار الكود وذلك عن طريق lastIndexOF

اتمنى ان هذا ماكنت تريده

تفكيرك كان صح بس كان لازم تستبدل indexOF ب lastIndexOF

		import java.util.*;
public class Tokenizer {
	public static  void main (String args[]){
		String all="";
		String sub="";

		StringTokenizer tokens=new StringTokenizer(
			"jone/name Britin/country 50/weight 170/tall 1987/date of birth computer/major fottball/fav sport","/");

		while(tokens.hasMoreTokens()){

			sub=tokens.nextToken();
			sub=sub.trim();//for insurance only 
			if(sub.lastIndexOf(" ")!=-1 &&  tokens.countTokens()!=0)
			all+=" "+sub.substring(0,sub.lastIndexOf(" "));
			//System.out.println(tokens.countTokens());
			else if(tokens.countTokens()==0)
			all+=" "+sub;
			}
System.out.println(all.trim());

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

طيب اشرح شو بعمل الكود تبعك لو سمحت طبعا

تم تعديل هذه المشاركة بواسطة silentboy في 14 يونيو 2006 في 18:43

#11

السؤال الأول:

import java.util.*;
public class test{

public static void main(String[] args) {

System.out.println(getString("jone/name Britin/country 50/weight 170/tall 1987/date of birth"));

}

static String getString(String input){

StringTokenizer st=new StringTokenizer(input,"/");

String output="";

while(st.hasMoreTokens()){

 String token=st.nextToken();

StringTokenizer sb=new StringTokenizer(token," ");

if(st.countTokens()==0) // the last phrase

output+=token+" ";

else

while(sb.countTokens()>1) // all of the phrases without the one before "/" 

output+=sb.nextToken()+" ";

}

return output; }

}

السؤال الثاني:

import java.util.*;
public class test{


public static void main(String[] args) {

System.out.println(getString("Ahmed/NAME Lebnon/COUNTRY 23/AGE computer/MAJOR"));

}


static String getString(String input){

StringTokenizer st=new StringTokenizer(input,"/ ");

String output="";

while(st.hasMoreTokens()){

String token=st.nextToken();

if(token.contains(token.toUpperCase()))

output+=token+" ";}

return output; 

}}

تم تعديل هذه المشاركة بواسطة red_knight في 15 يونيو 2006 في 06:40

public Money getRich(String name){
return new Money(1,000,000,000 );
}
#12

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

كيف لي ان اعكس البرنامج و احصل على كل شي قبل ال

/

هذا الموضوع مغلق.

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