جدا کردن خونه های آرایه با split و رشته جدید در آرایه جدا
سلام.چه طوری میشه رشته های داخل خونه های یک ارایه رو به وسیله split() جدا کرد و بعد رشته های جدید رو تو ارایه ی جداگونه ای ریخت؟فرضا تو خونه 1 از ارایه ی a این رشته وجود داره:3*x^4 که من میخوام از ^ جداشون کنم و تو یه ارایه جدید بریزم و همینطور تا اخر .باید چی کار کنم؟
7 پاسخ
نمیدونم چه طوری تشکرمو بیان کنم.ممنونم
ممنون ولی وقتی رشته ی مورد نظر تو ارایه ای مث array1 باشه و ما بخوایم کل شئ های درون ارایه رو اینشکلی کنیم باید چه کار کرد....من از حلقه forاستفاده کردم ولی عبارت به دست اومده هی تو سه خونه اول ارایه دوم ریخته میشه.مشکل کارم چی؟
این پیغام رو میده که zarib1 cannot be resolved to a variable.......
for(int j=0;j<tokens.length;j++)
{ String[] zarib1=tokens[j].split('*');
}
for(int i=0;i<zarib1.length;i++)
{
System.out.println(zarib1[i]);
من اینطوری نوشتم که خطا میده.tokensارایه ای که رشته هام توشن.
سلام به شما Itpro ای عزیز.
برای این کار چون علامت ^ معنی خاصی توی regular expression داره شما باید به شکل زیر این رشته را از یکدیگر جدا نمایید
public class StringSplit {
public static void main(String[] args){
String str="x^4*3";
String[] splited=str.split("\\^");
for (int i=0;i<splited.length;i++){
System.out.println(splited[i]);
}
}
}
یعنی علامت ^ را بین دوعدد بک اسلش بذارید. برای علامت ضرب نیز می تونید اون رو بعد از دو عدد بک اسلش بیارید.
خب شما آرایه zarib1 را داخل حلقه for اول تعریف کرده اید. بنابراین این آرایه فقط در داخل همان بلوک قابل دسترس است. پس شکل درست برنامه این است که حلقه دوم را در داخل حلقه اول بنویسید یعنی کد شما به شکل زیر خواهد بود:
for(int j=0;j<tokens.length;j++)
{ String[] zarib1=tokens[j].split('\\*');
for(int i=0;i<zarib1.length;i++)
System.out.println(zarib1[i]);
}
همانطور هم که در پست قبلی گفتم علامت ستاره را باید بعد از دوتا بک اسلش بیاورید.
من دقیقا متوجه مشکل شما نشدم اگر ممکنه کد برنامتون رو بذارید.
متد Split روی رشته ها کار می کنه و فقط روی یک رشته کار می کنه حالا شما باید هر عبارت رو به صورت یک رشته در نظر بگیرید و بر روی آن این متد رو اجرا کنید و نتیجه را در یک آرایه دوم بریزید.