بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

دستیابی به بخش خاصی از یک استرینگ

مدیریت گفتگو
Hamedmtn 10 سال پیش
آخرین تغییر: 10 سال پیش

   دوورد دوستان

   یک استرین به شکل زیر داریم :

 String string = " hello my name is xxx and my lastname is yyyy"+
"my birthday is on : "+
"* Novamber first ,* "+
" * My married day is on October 2 / 2006 * ";

چطور میشه بخش هایی که با ستاره مشخص شده اند رو از استرینگ استخراج کرد. (توجه نیاز من طوری است که ممکن است متون بین دو ستاره  تغییر کند امّا محتوای دیگر استرینگ ثابت است)

 

نظرات

Criss 10 سال پیش
String.Splite("*") خروجی یک آرایه بهتون میده < که شامل عبارت های بین * ها است
Criss 10 سال پیش
حواسم به این نبود که ممکنه ستاره ها عوض بشه < بصورت آنچنان داینامیک و فوق هوشمندانه نمیشه ، شما یا باید کاراکتر های مشخص داشته باشید < و یا همراه با این استرینگ چند INT هم بفرستید که با توجه به اون ها روی String ها کار کنید
Reza 10 سال پیش
==> Criss - برای داینامیک کردنش نمیشه با استفاده از Interface و ساخت یه Listener بگیم هر موقع که اون String تغییر کرد ، اون متد String.Split رو روی اون اجرا کنه ؟ ( Interface رو 60% فهمیدم ، ولی مگه کاربردش همین چیزا نیست ؟ )
sun.of.god.7 10 سال پیش
راهی که من به ذهنم میرسه اینه که یه Splite(":") بکنی و ایندکس دوم ارایه بدست اومده رو جدا کنی ...
sun.of.god.7 10 سال پیش
اگرم میخوای اون قسمت جدا شده رو باز به دو تا ستاره ی مورد نظرت جدا کنی Splite(",") میزنی و دوتا ایندکس رو تو دوتا استرینگ میریزی

پاسخ‌ها 2

Hamedmtn 10 سال پیش

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

                for (int i = 0 ;  i<value.length() ; i++){
if (value.charAt(i) == 'x'){
Log.i("TAG", " : " +i);
}

}

که واقع تک به تک کاراکتر هارو چک میکنه و اگر برابر با حرف مورد نظر بود ، خبر میده. همچنین برای کوتاه نمودن استرینک از خانه ی کاراکتر یافت شده به قبل میتوان از (String s = value.subString(i استفاده نمود .

نظرات

زهرا رئیسی 10 سال پیش
میتونید به جای ستاره از [] استفاده کنید که ابتدا و انتهای متن مورد نظرتون رو نشون بده
Hamedmtn 10 سال پیش
ستاره یک مثال بود ، کار نیاز اصلی من گرفتن یه متن خاص و متغییر از یاهو api بود
زهرا رئیسی 10 سال پیش

 int c1 = 0, c2 = 0;
String newString = "";
for (int i = 0; i < text.length(); i++) {

if (text.charAt(i) == '[') {
c1 = i;


}
if (text.charAt(i) == ']') {
c2 = i;
newString = text.substring(c1 + 1, cc2-1);
}

نظرات


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