ورود

View Full Version : حذف کردن 2 مقدار String از یکدیگر



pro_mvb
چهارشنبه 13 دی 1391, 23:05 عصر
سلام
من یه مقدار String دارم که مثلا در متغیر first ذخیره شده و یک مقدار رشته ای دیگه دارم که در متغیر secend ذخیره شده.

حالا من میخوام عبارتی که در متغیر first هست رو از secend کم کنم و در یک متغیر دیگه بریزم.


ممنون میشم راهنمایی کنین مرسی:لبخندساده:

Hybrid
چهارشنبه 13 دی 1391, 23:36 عصر
سلام ، من منظورت رو از اینکه یک رشته رو از یک رشته دیگه کم کنی نمیگیرم. اگه منظورت اینه یک رشته رو از یک رشته دیگه حذف کنی میتونی از متد replace از کلاس String استفاده کنی.

rayarasool
پنج شنبه 14 دی 1391, 08:17 صبح
سلام

اگه میشه یه مثال بزنید.

Hybrid
پنج شنبه 14 دی 1391, 09:36 صبح
سلام

اگه میشه یه مثال بزنید.

public static void main(String[] args){
String str1 = new String("siavash");
String str2 = new String("siavash ebrahimi younes siavash amraie");
String result = str2.replace(str1,"");
System.out.println(result);
}

کد بالا رو داخل NotePad نوشتم اگه اشکالی داشت ببخشید.

pro_mvb
پنج شنبه 14 دی 1391, 09:52 صبح
نه من نمیخوام هرجا که اون str1 بود رو replace کنه
رشته من طوری هست که هر بار فقط عبارت آخر باید delete بشه
مثلا در مثالی که زدین فقط میخوام عبارت آخر، amraie حدف بشه و قبلیاش حفظ بشن.

pro_mvb
پنج شنبه 14 دی 1391, 10:17 صبح
من یه کارکردم اونم اینه که اومدم اون مقدار string اول رو تبدیل به array کردم بعد از انتها شروع کردم به خواندن تا به یه جداکننده مثل / برسه ، به اینجا که میرسه میاد دوباره string رو از اول شروع به خواندن میکنه تا به شماره اندیس / برسه. فقط اینو بگم که شماره اندیس / رو از همون حلقه ای که داش از آخر میخواند انتخاب میکنیم.

اینم کدش ولی هنوز کار نداده :

char[] reader= path.toCharArray( );
int b=0;
System.out.println("reader sakhte shod");
for(int i=reader.length;i==b;i--){
System.out.println("halghe aval omad ");

for(int j=reader.length;j==i;j--){
System.out.println("oomad too dovom");

temp[j] = reader[i];
if(temp[j]=='/'){
System.out.print("/ ro peyda kard");
for(int k=0;k==j;k++){
path_jback[k]=reader[k];
}

}
}
}



اگه این کد درست باشه تنها مشکلی که هست اینه که وارد حلقه نمیشه اصلا.:متفکر:

Hybrid
پنج شنبه 14 دی 1391, 10:24 صبح
مثلا در مثالی که زدین فقط میخوام عبارت آخر، amraie حدف بشه و قبلیاش حفظ بشن.
میتونید به شکل زیر عمل کنید :


public static void main(String[] args){
String str1 = new String("Siavash ebrahimi amraie");
String[] splitStr1 = str1.split(" ");
int index = str1.lastIndexOf(splitStr1[splitStr1.length-1]);
String result = str1.subString(0,index);
System.out.println(result.trim());
}


یعنی Index آخرین کلمه رو گرفته و با استفاده از متد subString از ایندکس 0 تا اون ایندکس رو بگیرید و در یک متغیر جدید بزارید.

اگه باز هم سوالتون رو بد متوجه شدم ببخشید . ولی روش کار فرقی نمیکنه شمل میتونید از متد های indexOf و lastIndexOf و همچنین متد subString استفاده کنید

pro_mvb
پنج شنبه 14 دی 1391, 12:24 عصر
خدا وکیلی کار من پس خیلی چرت بوده نه؟ :ناراحت:

خیلی کمک کردین واقعا ممنون چیز خوبی ازتون یاد گرفتم ممنون.

M0TR!X
پنج شنبه 14 دی 1391, 14:31 عصر
خدا وکیلی کار من پس خیلی چرت بوده نه؟ :ناراحت:

خیلی کمک کردین واقعا ممنون چیز خوبی ازتون یاد گرفتم ممنون.

سلام.

منم مثل تو بودم.یه بار به استادمون گفتم چرا من همیشه الگوریتمهای چرت به ذهنم میاد ؟ !

استاد گفت دقت کردی حداقل همین الگوریتم چرت به ذهن تو میاد ولی به ذهن بقیه هم کلاسیات نمیاد ؟

همین الگوریتمهای چرت باعث میشه کم کم پیشرفت کنی و الگوریتمت بهینه بشه ! به این فک نکن که چرا الگوریتمت خوب نیست به این فک کن که حداقل یه الگوریتمی به ذهنت رسیده.