در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

atena

جدا کردن خونه های آرایه با split و رشته جدید در آرایه جدا

سلام.چه طوری میشه رشته های داخل خونه های یک ارایه رو به وسیله split() جدا کرد و بعد رشته های جدید رو تو ارایه ی جداگونه ای ریخت؟فرضا تو خونه 1 از ارایه ی a این رشته وجود داره:3*x^4 که من میخوام از ^ جداشون کنم و تو یه ارایه جدید بریزم و همینطور تا اخر .باید چی کار کنم؟

این سوال 1 پاسخ دارد.
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.

سلام به شما 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]);
        }
    }
}

یعنی علامت ^ را بین دوعدد بک اسلش بذارید. برای علامت ضرب نیز می تونید اون رو بعد از دو عدد بک اسلش بیارید.

سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم
atena

ممنون ولی وقتی رشته ی مورد نظر تو ارایه ای مث array1 باشه و ما بخوایم کل شئ های درون ارایه رو اینشکلی کنیم باید چه کار کرد....من از حلقه forاستفاده کردم ولی عبارت به دست اومده هی تو سه خونه اول ارایه دوم ریخته میشه.مشکل کارم چی؟

من دقیقا متوجه مشکل شما نشدم اگر ممکنه کد برنامتون رو بذارید.

متد Split روی رشته ها کار می کنه و فقط روی یک رشته کار می کنه حالا شما باید هر عبارت رو به صورت یک رشته در نظر بگیرید و بر روی آن این متد رو اجرا کنید و نتیجه را در یک آرایه دوم بریزید.

سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم
atena
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ارایه ای که رشته هام توشن.

atena

این پیغام رو میده که zarib1 cannot be resolved to a variable.......

خب شما آرایه 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]);
}

همانطور هم که در پست قبلی گفتم علامت ستاره را باید بعد از دوتا بک اسلش بیاورید.

سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم
  • انتخاب شده به عنوان جواب توسط 1 نفر
atena

نمیدونم چه طوری تشکرمو بیان کنم.ممنونم

پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....