نمایش نتایج 1 تا 6 از 6

نام تاپیک: تابع indexof

  1. #1
    کاربر جدید آواتار سایانا
    تاریخ عضویت
    دی 1392
    محل زندگی
    قاره کوچک
    پست
    23

    Question تابع indexof

    آیا تابع indexof نسبت به اندازه حروف حساسه؟

  2. #2
    کاربر دائمی آواتار storm_saeed
    تاریخ عضویت
    مهر 1390
    محل زندگی
    Tehran , Iran
    پست
    779

    نقل قول: تابع indexof

    منظورتون چیه ؟ indexof به چند نوع overloading شده طبق ورودیمثلا کاراکتر اندیس i ام یک رشته رو میده اگر خارج از رشته باشه Exception میده
    برای اطلاع بیشتر
    http://www.tutorialspoint.com/java/j...ng_indexof.htm

  3. #3
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: تابع indexof

    آیا تابع indexof نسبت به اندازه حروف حساسه؟

    منظورتون از اندازه حروف همین بزرگ و کوچک بودنه؟ مثلا A و a ؟
    بله حساسه. برای اینکه تفاوتی نداشته باشه، میتونی هر دو رشته رو اول به حروف کوچک تبدیل کنی و بعد سرچ کنی. از toLower استفاده کنید.

    سوالات خیلی جزئی رو مثل همین چیزی که کاملا مشخص هست رو اول سرچ بزنید ( فارسی یا انگلیسی اما ترجیحا انگلیسی چون برای جاوا منابع فارسی کمه، ولی در عوض منابع انگلیسی خیلی خیلی کاملی وجود داره. مشکلات و باگ هایی گاها باهاش برخورد میکنی که فکر میکنی خودت اولین نفر پیداش کردی ولی اگر خوب سرچ کنی میبینی چقدر رو اون موضوع ریز بحث شده! )

    اگر خارج از رشته باشه Exception میده
    فکر نکنم. exception نمیده، -1 میده.
    آخرین ویرایش به وسیله vahid-p : شنبه 13 اردیبهشت 1393 در 12:27 عصر

  4. #4
    کاربر دائمی آواتار storm_saeed
    تاریخ عضویت
    مهر 1390
    محل زندگی
    Tehran , Iran
    پست
    779

    نقل قول: تابع indexof

    اره اکسپشن نمیده -1 میده حواسم نبود :)

  5. #5
    کاربر جدید آواتار سایانا
    تاریخ عضویت
    دی 1392
    محل زندگی
    قاره کوچک
    پست
    23

    نقل قول: تابع indexof

    خب حالا سوال بالارو به مبحث اصلی ربط میدیم.
    مسأله از این قراره که یه برنامه رشته ای مثل این رو دریافت میکنه.(که خب دریافت کردنش مشکلی نیست)
    aaaared15487//BlUeBlue4 #1 g h ali
    خب خروجیش هم باید اینطوری باشه:
    blue 2 red 1
    ali 1
    15487 1 4 1 1 1 (عدد-تعداد)
    من برای شمارششون قصد دارم از indexof استفاده کنم.
    اولین مشکل اندازه حروف بود که خب به قول بچه های بالا کل رشته رو به حروف کوچیک تبدیل میکنیم.
    دومین مشکل اینه که اگر بخواهیم کلمات رو یکی یکی با تابع indexof پیدا کنیم و بشمریمشون برنامه طولانی میشه و اصلا جالب نیست.پس استفاده از حلقه منطقی تره. مثلا کلمات رو در آرایه قرار بدیم (کلماتی که باید پیدا بشن مشخص هستند) و آرایه رو به تابع indexof بدیم.یه جورایی مثل این:
    arr[]={blue,red};
    for(int i=0 ; i<r.length(); i++)
    {
    index= r.indexOf("arr[i]");
    if(index!=-1)
    {
    teadad += 1;

    }
    }
    r همون رشته ایه که دریافت کرده.حالا من نمیدونم میشه چنین کاری رو انجام داد؟آخه یه بار یک متغییر رشته رو که بهش دادم خطا داد. اگه نمیشه راه بهتر سراغ ندارید؟

  6. #6
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: تابع indexof

    به نظر من طولانی شدن کد زیاد هم مهم نیست. به نظرم اولویت با اینهاست :
    1- برنامت در تمام شرایط درست کار کنه ( به عبارتی باگ نداشته باشه )
    2- برنامت در زمان کمتری اجرا بشه
    3- حافظه کمتری مصرف کنه
    4- کد کمتر

    برای برنامه های ساده زیاد نگران زمان، حافظه و کد نباش، مهم اینه درست کار کنه.
    خب این کاری که شما میخواهید انجام بدید خیلی راحت با همون تابعی که نوشتم قابل انجامه. شما میگید نمیشه indexOf اینکار رو بکنه؟ خب اینکار رو نمیکنه، پس هیچ؟ خودت میتونی یه تابع بنویسی. کد شما یه اشکالاتی داره و اگر تصحیحش کنید باز به اون کدی که من نوشتم میرسید. دیگه بهینه تر فکر نمیکنم بشه انجام داد ( مگر اینکه بیایید خودتون به جای indexOf یه تابع بنویسید، که نیازی نیست گرچه سادست. راستی اکثر کتابخونه های جاوا ( شاید هم همشون کد منبع باز هستند و راحت میتونید ببینید با چی نوشته شده. کافیه در نت بینز Ctrl رو نگه دارید و روی indexOf کلیک کنید تا به منبعش برید. اونجا هم دوباره رو indexOf کلیک کنید تا به منبعش برسید و کدش رو ببینید )
    راستی تو پرانتز بگم یکم کدت مشکلات syntax هم داره که اگه با نت بینز یا اکلیپس بنویسی خودش بهت هشدار میده.

    اما در مورد این مثال. من از اون تابعی که قبلا نوشتم ( اینجا ) استفاده میکنم و کار شما رو اینجوری انجام میدم :
        public static void main(String[] args) {
    String arr[]={"red","blue","15487","book"};
    String exp= "aaaared15487//BlUeBlue4 #1 g h ali";
    exp=exp.toLowerCase();
    int x;
    for (int i=0;i<arr.length;i++) {
    x=find(arr[i].toLowerCase(),exp);
    System.out.println("("+arr[i]+":"+x+")");
    }
    }
    public static int find(String word,String expression){
    int index=-word.length();
    int found=-1;
    do{
    found++;
    index=expression.indexOf(word, index+word.length());
    }while(index!=-1);
    return found;
    }

    خروجی برنامه :
    (red:1)
    (blue:2)
    (15487:1)
    (book:0)

    شرح کد :
    آرایه و رشته و اینا که گفتی فرض میکنیم گرفته شده.خب اول من میام عبارت اصلی رو یه بار همه رو به حروف کوچک تبدیل میکنم که هر بار نیاز نباشه.
    بعد برای تک تک عناصر آرایه arr تابع find ( که تعداد کلمات ظاهر شده در عبارت رو برمیگردونه ) رو فراخوانی میکنه و جواب ها رو چاپ میکنه.
    تابع find هم که تو لینکی که دادم توضیح دادم.
    تو برنامه نویسی هیچ وقت یه روش و یه راه حل نیست. مثلا اینی که من گفتم شاید یکی بیاد از کتابخونه های آماده استفاده کنه ولی این معمولا چیزی است که تو دروس ازتون میخوان. اگر کلمه های مستقل مورد نظر بود، میتونستید از Map هم استفاده کنید. به این صورت که اول رشته عبارتتون رو با split اونا رو کلمه کلمه کنید و Map ای از کلمات و تعداد تکرارشون به دست بیارید. به هر حال میگم راه حل ها زیاده!

    موفق باشید.
    آخرین ویرایش به وسیله vahid-p : یک شنبه 14 اردیبهشت 1393 در 00:07 صبح

تاپیک های مشابه

  1. تابع indexof
    نوشته شده توسط m.khani_121 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 29 آبان 1390, 14:35 عصر
  2. چگونگی تعریف تابع با دو خروجی ؟؟
    نوشته شده توسط m_reza در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 5
    آخرین پست: سه شنبه 10 تیر 1382, 16:24 عصر
  3. چگونه با اکتیوکسها مانند یک تابع رفتار کنم؟
    نوشته شده توسط توسلی در بخش کامپوننت ها و ابزارهای کاربردی در VB6
    پاسخ: 4
    آخرین پست: دوشنبه 01 اردیبهشت 1382, 17:05 عصر
  4. تابع انتخاب تصادفی یک فیلد از بین رکوردهای بانک اطلاعاتی
    نوشته شده توسط hesam_din در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: جمعه 23 اسفند 1381, 04:51 صبح
  5. برای برنامه هاتون تابع تعریف کنید
    نوشته شده توسط (امید) در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: پنج شنبه 22 اسفند 1381, 00:21 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •