آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نحوه شرط در split کردن متن ؟

Eminent  11 سال پیش  11 سال پیش
0 0

سلام

دوستان من یه متغیر بنام result از نوع متنی دارم مثلا موقع اسپلیت کردن میخوام بگم تا وقتی که به فلان کاراکتر رسیدی این کار رو بکن و همچنان تا آخر متن ادامه پیدا کنه مثال میزنم تا واضح تر بشه.

sobhan,nazari,mard|ali,mosavi,mard

من کاراکترهای بالا رو دارم که فیلدها رو با , و رکوردها رو با | جدا کردم میخوام بگم به اولین رکورد یعنی | رسیدی کاراکتری قبلیش رو که بوسیله split جدا شده بود رو بده و اگر به دومین | رسید که نشون میده رکورد دوم رو پیمایش کرده بنابرین مقادیر فیلدهای دوم رو بده...

من تونستم بوسیله کد زیر مقادیر فیلدهای رکورد اول رو بدست بیارم اما نمیتونم بقیه رو بدست بیارم خواهشن کمک کنید.

  String[] strLine = result.split(",");

                            String name = strLine[0];
                            String lname = strLine[1];
String isman = strLine[2];
+2 0
اول با "|" یبار کل عبارت رو به دو قسمت تقسیم کن بعد هر کدوم از این قسمت ها رو با "," جدا کن ، حل نمیشه اینطوری؟ (11 سال پیش)
0 0
این پیام Spirit هم اسپم محسوب شد؟؟؟ نه دیگه واقعا این اسپم کیلره داره مشکل ساز میشه!!! (11 سال پیش)
0 0
دوست عزیزم دقیقا میخوام همین کار رو کنم نمیتونم اگه میشه شما یه شبه کد برام به عنوان راهنمایی بزارین ممنون میشم. (11 سال پیش)
+1 0
من دیروز صبح هم یه سوال رو ناقص خوندم بعد یکی از دوستان تذکر داد منم اسپمش کردم ، الانم صبح باز اینو نخونده جواب دادم بعد دیدم انگار همین کار و کردن ( متوجه سوال نمیشم) ، زدم اسپمش کردم ، الان این پیامم میزنم اسپم بشه :) از بچگی من این طور متواضع بودم D: (11 سال پیش)
0 0
مرسی تواضع D: . سبحان جان با همین روش spirit جواب میده دیگه. کجاش رو نتونستی پیاده کنی بگو تا کمک کنیم (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Eminent  11 سال پیش
0 0

spirit , sadegh دوست عزیزم مشکلم حل نشد آخه مشل دستورات زیر چیه ؟

  String result = br.readLine();
                            String[] strLine1 = result.split("|");
                            String[] strLine2 = strLine1[0].split(",");

                            String id = strLine2[0];
                            String name = strLine2[1];
                            String lname = strLine2[2];
                       

 Log.i("LOG", "Id :" + id + " ,Name :" + name + " ,Lname :" + lname );
+2 0
خروجی چیه ؟! ، کد به نظر درست میاد ! (11 سال پیش)
+2 0
الان محتویات نفر اول رو نشون نمیده؟ متاسفانه الان تو مسافرتم با گوشی دارم اینو میخونم نمیتونم تستش کنم ولی به ظاهر کدها درستن! ااصلا LOG انجام میشه؟؟ (11 سال پیش)
0 0
هیچی crash میکنه... (11 سال پیش)
0 0
آخه دوستان عزیز گیرم اصلا کار کرد من که نمیدونم در طور برنامه چندتا رکورد وجود داره میخوام کدم دینامیکتر بشه منظور اینه که در دستور اول که اسپلیت کردم تو آرایه strLine1 ریختم چطوری آخرین ایندکس رو بدست بیارم که تا بتونم بوسیله اون یه حلقه بزارم تا هم رکوردها رو بتونم fetch کنم. (11 سال پیش)
+1 0
خوب وقتی کار کرد ، آخرین ایندکس میشه طول آرایه ، یعنی array.length (11 سال پیش)
0 0
آخه همیشه که علامت | پایان رکوردم تو آخر آرایه قرار نداره! منظور میخوام شماره اسپلیت کردن | رو بدست بیارم. (11 سال پیش)
پاسخ به سوال 
hamed  11 سال پیش
+3 0

خوب با توجه به صحبت های دوستان این هم کد نهایی به صورت هلو برو تو گلو:

 

 String result = br.readLine();
String[] strLine1 = result.split("|");
for(i=0; i<strLine1.length; i++){
String[] strLine2 = strLine1[i].split(","); String id = strLine2[0]; String name = strLine2[1]; String lname = strLine2[2];

Log.i("LOG", "Id :" + id + " ,Name :" + name + " ,Lname :" + lname );
}

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .