JavaRush /وبلاگ جاوا /Random-FA /متد IndexOf کلاس String: چرا به آن نیاز است و چگونه کار م...

متد IndexOf کلاس String: چرا به آن نیاز است و چگونه کار می کند

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

اضافه بار روش چیست؟

قبل از اینکه به روش ذکر شده در عنوان نگاه کنیم، بیایید به یاد بیاوریم (و کسی می داند) بارگذاری بیش از حد روش چیست. بارگذاری بیش از حد متد جاوا اجازه می دهد تا دو یا چند روش با نام مشابه در یک کلاس تعریف شوند. این تنها در صورتی امکان پذیر است که آنها پارامترهای ورودی متفاوتی داشته باشند. در این حالت متدها overloaded و خود فرآیند را روش overloading می نامند. متد IndexOf کلاس String: چرا به آن نیاز است و چگونه کار می کند - 1اضافه بار روش یکی از اصول اساسی چندشکلی در جاوا است.

indexOfروش کلاس برای چیست ؟String

تصور کنید یک رشته بلند دارید. به عنوان مثال، یک نامه، و شما باید مکانی را پیدا کنید که اولین آدرس به مخاطب با نامی که قبلاً می شناسید انجام می شود. چطور این کار رو می کنی؟ indexOf javaاز روش کلاس استفاده کنید String. این روش یک مثال معمولی از بارگذاری بیش از حد روش است که در بالا به آن پرداختیم.

گزینه های روشindexOf

این روش java string indexOfدارای چهار تغییر مختلف است:

شماره 1.indexOf(int ch)

متد int indexOf(int ch)ایندکس را در رشته داده شده از اولین وقوع کاراکتر مشخص شده برمی گرداند. به عبارت دیگر، تعداد اولین رخداد یک کاراکتر را با شمارش از چپ به راست به دست خواهیم آورد. مثال:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
خروجی کنسول:

2
اگر کاراکتر مورد نظر ما در این خط نباشد، -1 دریافت می کنیم.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
خروجی کنسول:

-1
PS برای اینکه چیزی را اشتباه نگیرید، نباید فراموش کنید که شخصیت های یک خط نه از "1،2،3..."، بلکه از "0،1،2..." شمارش می شوند.

شماره 2.indexOf(int ch, int fromIndex)

متد int indexOf(int ch, int fromIndex)ایندکس را در این رشته از اولین رخداد کاراکتر مشخص شده برمی گرداند و جستجو را در نمایه مشخص شده شروع می کند. این روش یک نسخه مدرن تر از روش قبلی است. تفاوت این است که ما تعداد عنصری را که جستجو از آن شروع می شود را نشان می دهیم. مثال:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
خروجی کنسول:

9
اگر شاخصی که جستجو از آن انجام می شود از طول رشته بیشتر باشد، پاسخ 1- خواهد بود. متد IndexOf کلاس String: چرا لازم است و چگونه کار می کند - 2همانطور که متوجه شده اید، در امضای این دو روش (آنچه متدها به عنوان آرگومان می گیرند)، نوع نماد ارسال شده به صورت int, نه مشخص شده است char. با این حال ما انتقال دادیم char. این به این دلیل است که رشته ها به عنوان یک آرایه بایت ذخیره می شوند، جایی که سلول ها با یک کاراکتر خاص از نوع مطابقت دارند char. مطابقت بین بایت ها charمطابق جدول ASCII انجام می شود. ASCII (کد استاندارد آمریکایی برای تبادل اطلاعات) جدولی است که کاراکترهای معمولی قابل چاپ و غیر قابل چاپ را به کدهای عددی ترسیم می کند. بنابراین، هنگامی که یک کاراکتر خاص ارسال می شود char، به طور خودکار به عددی تبدیل می شود که آن کاراکتر را در جدول ASCII نشان می دهد. بر این اساس می‌توانیم مستقیماً عدد ( int) را به متد ارسال کنیم که مطابق با کاراکتر مورد نیاز ما است. به عنوان مثال، کاراکتر 'e' در جدول ASCII با عدد 101 مطابقت دارد، بنابراین می توانیم مثال قبلی را تکرار کنیم، اما بدون char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
خروجی کنسول ما تغییر نکرده است:

9
PS در برخی موارد، این روش ها قابل تعویض هستند، به عنوان مثال str.indexOf('e');مشابه خواهد بود - str.indexOf('e', 0);.

شماره 3.indexOf(String str)

متد int indexOf(String str)ایندکس را در ردیف داده شده از اولین وقوع رشته فرعی مشخص شده برمی گرداند. این روش اساساً با گزینه اول متفاوت است زیرا این روش قبلاً یک زیررشته کامل ( String) را جستجو می کند. با تشکر از این، ما می توانیم به دنبال چیزی خاص تر باشیم. مثال:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
خروجی کنسول:

0
PS همه تغییرات indexOfبه حروف بزرگ حساس هستند: کاراکترهای بزرگ (حروف بزرگ) و حروف کوچک (حروف کوچک) متفاوت در نظر گرفته می شوند. مراقب باش.

شماره 4.indexOf(String str, int fromIndex)

متد indexOf(String str, int fromIndex)ایندکس را در این ردیف از اولین رخداد زیررشته مشخص شده برمی گرداند که از شاخص مشخص شده شروع می شود. این گزینه دوباره یک گزینه قبلی مدرن تر است، اما با نشان دادن مکانی که جستجو از آنجا انجام خواهد شد. مثال:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
خروجی کنسول:

26
PS اگر یک شاخص شروع منفی را مشخص کنید، روش indexOfآن را 0 درک می کند. در این صورت، روش دوباره مشابه روش قبلی (که در آن شاخص شروع مشخص نشده است) خواهد بود. همه چیز برای امروز است. اکنون به لطف جاوا دانش بیشتری دارید indexOf!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION