جاوا از ابتدا، بخش بیست و چهارم

متد indexOf در جاوا

متد indexOf برای پیدا کردن مکان یک کاراکتر یا رشته درون یک رشته دیگر استفاده می شود. برای مثال می توانید از آن برای چک کردن وجود کاراکتر @ در آدرس ایمیل استفاده کنید. این مثال را با کد پیاده سازی می کنیم:

کد زیر را در نظر بگیرید:

Java code showing an example of indexOf

می خواهیم بررسی کنیم که “@” در آدرس ایمیل هست یا نه، پس در ابتدا یک متغیر از جنس char، ایجاد کرده و به آن مقدار ‘@’ می دهیم. سپس یک رشته ایجاد می کنیم و یک آدرس ایمیل را برای امتحان درون آن می ریزیم. سپس یک متغیر از نوع int به نام result برای ذخیره نتیجه ایجاد می کنیم. به این دلیل این متغیر از نوع int است که خروجی متد indexOf یک عدد است که مکان کاراکتر مورد نظر ما درون یک رشته را مشخص می کند. در این مثال ما به دنبال مکان کاراکتر “@” در رشته email_address هستیم. کد زیر همین کار را برای ما انجام می دهد:

result = email_address.indexOf( ampersand );

رشته ای که قصد جستجو درون آن را داریم را در ابتدا نوشته و بعد از “.”، نام متد(indexOf) را می نویسیم. درون پرانتز روبروی متد هم می توانیم نام متغیر کاراکتری را بنویسیم یا به صورت مستقیم خود کاراکتر را بنویسیم(بدین صورت: “@”). در این مثال ما متغیر ampersand که دارای مقدار @ است را به عنوان ورودی به متد داده ایم. جاوا مکان کاراکتر “@” را بر می گرداند و در متغیر result دخیره می کند. بعد از اجرای کد در خروجی می بینید که عدد ۴ چاپ می شود. شاید فکر کنید که خروجی متد اشتباه است ولی چون این متد شمردن را از عدد ۰ شروع می کند نتیجه درست است. اگر کاراکتری که به دنبال آن هستید درون رشته وجود نداشته باشد، این متد عدد ۱- را بر می گرداند. برای امتحان این مورد، کاراکتر “@” را از آدرس ایمیلی که در کد نوشته شده پاک کنید و خروجی را مشاهده کنید. از این خروجی می توانیم به صورت زیر استفاده کنیم:

Using an IF Statement with indexOf

بنابر این اگر خروجی indexOf، عدد “۱-” باشد، می توانیم پیغام خطا نشان دهیم و در غیر این صورت به کاربر اجازه می دهیم تا ادامه دهد. از این متد می توانیم برای امتحان بیش از یک کاراکتر هم استفاده کنیم. کد زیر آدرس ایمیل را بررسی می کند تا ببیند با “com.” به پایان می رسد یا خیر:

Using indexOf to check the end of a  Java string

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

همچنان اگر متن مورد نظرکه به عنوان ورودی به متد indexOf می دهیم درون رشته یافت نشود، خروجی این متد، ۱- خواهد بود. و اگر متن مورد نظر درون رشته یافت شود خروجی متد محل اولین کاراکتر یافت شده در رشته خواهد بود. در مثال بالا کاراکتر “.”، هفتمین کاراکتر رشته email_address است.(با شروع شمارش از ۰)

همچنین می توانیم محل شروع جست و جو را تعیین کنیم! مثلا در مثال بالا می توانیم جستجوی “com.” را از بعد کاراکتر “@” شروع کنیم:

Using indexOf to search a Java string

تفاوت این کد با کد قبل این است که این بار مکان کاراکتر “@” را پیدا کردیم و به عنوان ورودی دوم به متد indexOf داده ایم تا جست و جو را از آن مکان به بعد آغاز کند.

در صورتی که این تابع تنها یک ورودی داشته باشد، به صورت پیشفرض جستجو را از کاراکتر ۰ ام آغاز می کند.

Ends With … Start With

برای برنامه بالا می توانید از متد endsWith هم استفاده کنید. این متد همان طور که از اسمش مشخص است در صورتی که رشته ای که روی آن عملیات را انجام می دهد به رشته ای که در ورودی می گیرد ختم شود، نتیجه true خواهد داشت و در غیر این صورت false بر می گرداند. یعنی خروجی این تابع از نوع Boolean است.

Boolean ending = email_address.endsWith(dotcom);
if (ending == false){
System.out.println("Invalid Email Address");
}else{
System.out.println("Email Address OK");
}

متد startsWith، بر خلاف endsWith، در صورتی که رشته مورد نظر با رشته ورودی آغاز شود مقدار صحیح بر می گرداند.

در مطلب بعدی متد substring را بررسی خواهیم کرد.

متد indexOf در جاوا متد indexOf برای پیدا کردن مکان یک کاراکتر یا رشته درون یک رشته دیگر استفاده می شود. برای مثال می توانید از آن برای چک کردن وجود کاراکتر @ در آدرس ایمیل استفاده کنید. این مثال را با کد پیاده سازی می کنیم: کد زیر را در نظر بگیرید: می خواهیم …

بررسی کلی

امتیاز کاربر: 4.37 ( 5 رای)
0

۲ دیدگاه

  1. سلام
    خسته نباشید
    ممنون بابت دانشی که به اشتراک میذارید
    نمیخواهید ادامه بدید؟
    خیلی خوب توضیح میدید و مثال هاتون کاربردیه

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme