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

سؤال في ReplaceAll method في String

مغلق
بدأه مبرمجة الحزن في 14 نوفمبر 2005 · 6 رد · 583 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي سؤال

حاولت احله بس ما اعرف وين بالضبط الخطأ

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

ونريد نغير كلمة في الجملة لكلمة ثانية

ونرجع الجملة الجديدة

هذا الكود اللي انا حاولت فيه

صبركم علي شوي والله توني مبتدئة وفعلا ملاقية مشاكل

اتمنى تفيدوني

public class Replace {

	public static void main (String arg[]){
  System.out.println(replaceAll("Hi" , "Salam" , "Hi How are you , Hi again"));
  
	}

	public static String replaceAll (String oldKeyword , String newKeyword , String text){
  int k=0;
  int s=0;
  String New = "";
  for(int i=0; i<text.length(); i++ ){
 	 
 	 char ch = oldKeyword.charAt(k);
 	 char ch1 = text.charAt(i);
 	 char ch3 = newKeyword.charAt(s); 
 	 if(ch1==(ch)){
    ch1 = ch3;
 	 }
    
  New = text+ch3;
	}
  return New;
  
	}

}
#2
import java.util.StringTokenizer;
public class Replace {

public static void main (String arg[]){
 System.out.println(replaceAll("Hi" , "Salam" , "Hi How are you , Hi again"));

}

public static String replaceAll (String oldKeyword , String newKeyword , String text){

 StringTokenizer strTokenizer = new StringTokenizer(text);
 String New="";
 while(strTokenizer.hasMoreTokens()){
  
  String token = strTokenizer.nextToken();
  if(token.equals(oldKeyword))
  New = New + newKeyword + " ";
  else
  New = New + token + " ";
 	 
 }
 return New;

}

}

اعتقد فيه طريقة عن طريق الكلاس String ؛ لكن هذا ماخطر في بالي اول ماقريت السؤال.

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#3

وهذا حل اخر؛ ولكن فقط اذا كنت تستخدم الاصدار 1.4 او 1.5 من جافا:

public class Replace {

public static void main (String arg[]){
 System.out.println(replaceAll("Hi" , "Salam" , "Hi How are you , Hi again"));

}

public static String replaceAll (String oldKeyword , String newKeyword , String text){

  String [] textArray = text.split(" ");
  String New = "";
  for(int i = 0; i< textArray.length; i++){
 	 if(textArray.equals(oldKeyword))
 	 New = New + newKeyword + " ";
 	 else
 	 New = New + textArray + " ";
  }
  return New;
}

}

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#4

اما اذا اردت الطريقة الجاهزة:

public class Replace {
public static void main (String arg[]){
 System.out.println("Hi How are you , Hi again".replaceAll("Hi" , "Salam" )); 
}
}

:D :D

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#5

فعلا الحل الأول صحيح 100 %

بس اريد أسألstrTokenizer.hasMoreTokens

شو فائدتها؟؟؟؟؟

#6

hasMoreTokens تعني أن هناك المزيد من Tokens مثل الواجهة Enumeration.

فتتخيلي أن الكلمات مخزنة في مكدس مثلاً، وعندما تستدعي الطريقة nextToken تكوني قد نقلت المؤشر إلى العنصر التالي في المكدس، وعندها قبل أن تنتقلي إلى العنصر الذي يليه يجب عليك أن تتأكدي أنه لا يزال هناك عنصر واحد على الأقل بعده، وهذا ما يقوم به hasMoreTokens حيث أنه يعيد true إذا كان لايزال هناك عنصر واحد على الأقل في المكدس الذي هو هنا غرض من النمط StringTokenizer، وطبعاً false في الحالة المعاكسة.

#7

أهاااااااا

مشكور والله ما تقصر

فعلا الحين فهمت

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

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