PDA

View Full Version : راهنمائی درباره الگوریتم جداسازی رشته (لطفا توجه کنید)



hamedg1366
چهارشنبه 10 تیر 1394, 14:01 عصر
با سلام و عرض ادب خدمت ههم دوستان عزیز


کل سوال من اینه :


بهترین الگوریتم جداسازی رشته چیه؟


توضیح :

با کمک وب سرویس یه رشته ای طولانی رو از سرور دانلود میکنم توی 1 ثانیه ، اما برای جداسازی اون بیش از 30 ثانیه وقتم تلف میشه !!!!


این الگوریتم جداسازی منه : (هر فیلد رو با "=" از هم جدا میکنم)


while((line=reader.readLine()) !=null){


int f=0;//entehaye reshte
int c=0;//field mored nazar

for(int i=0;i<line.length();i++){
if(line.charAt(i)=='='){
String temp=line.substring(f, i);
if(c==0){
a = temp;
}
if(c==1){
b = temp;
}
if(c==2){
c = temp;
}
if(c==3){
d=temp;
}
if(c==4){
e=temp;
}

f=i+1;
c+=1;
} //if(line.char...
}//for(int i=0;i<line...

db.insert(a, b,c,d,e);


}//while((line=rea...



مد نظر داشته باشید برای افزایش سرعت از StringBuffer هم استفاده کردم اما متاسفانه جواب نداد ؛ به احتمال زیاد الگوریتم خودم مشکل داره ، دوستان لطفا کمک کنید


با تشکر

hamedg1366
چهارشنبه 10 تیر 1394, 14:28 عصر
دوستان یه وقت خدائی نکرده اشتباه متوجه نشن ، این تکه کد درست کار میکنه و تفکیک رشته انجام میشه اما زمان بر هستش ؛ دنبال الگوریتمی هستم که در زمان صرفه جوئی بشه

smemamian
چهارشنبه 10 تیر 1394, 15:09 عصر
سلام
از تابع split استفاده کن :

yourstring = yourstring.split("-")

hamedg1366
چهارشنبه 10 تیر 1394, 15:15 عصر
سلام
از تابع split استفاده کن :

yourstring = yourstring.split("-")


سلام
خداخیرت بده ، حیفم اومد فقط تشکر بزنم برات ، دمت گرم

hamedg1366
چهارشنبه 10 تیر 1394, 15:22 عصر
برای آیندگان =




String test="this: bill:hello;tom:hi;bill:how are you?;tommy:hello!;";
String[] arr = test.split("[:;]");
for(String s: arr){
System.out.println(s);
}


خروجی:


this
bill
hello
tom
hi
bill
how are you?
tommy
hello!

hamedg1366
چهارشنبه 10 تیر 1394, 15:56 عصر
:ناراحت::ناراحت::ناراحت:


دوستان مشکل در insert بداخل دیتابیسم هستش ، اونجا برنامم میخوابه

بار insert کردن هم از کد زیر استفاده میکنم :



public void insert(Integer a,Integer b,String c,String d, String e){

ContentValues cv=new ContentValues();
cv.put("a", a);
cv.put("b", b);
cv.put("c", c);
cv.put("d", d);
cv.put("e", e);

mydb.insert("f_table", null , cv);

}

hamedg1366
چهارشنبه 10 تیر 1394, 23:42 عصر
up...


دوستان نظری ندارین؟

:اشتباه:

tux-world
پنج شنبه 11 تیر 1394, 03:44 صبح
کد خطا رو بزارید به نظر درسته نمیدونم. لاگ کت رو بزارید بررسی بشه

hamedg1366
پنج شنبه 11 تیر 1394, 10:00 صبح
سلام دوست عزیز

خطائی وجود نداره ، مشکل میزان زمانی هس که برای insert کردن در جدول طی میشه ، (تقریبا 40 ثانیه) تعداد رکوردهام زیاد هستن