سلام! برنامه نویسان اغلب از روش ها به طور خودکار استفاده می کنند، بدون اینکه به نحوه کار آنها فکر کنند. اینها تکنیک های اساسی هستند که باید بدانید.
تصور کنید یک رشته بلند دارید. به عنوان مثال، یک نامه، و شما باید مکانی را پیدا کنید که اولین آدرس به مخاطب با نامی که قبلاً می شناسید انجام می شود. چطور این کار رو می کنی؟ گزینه های روش
این روش شماره 1.
متد شماره 2.
متد شماره 3.
متد شماره 4.
متد
اضافه بار روش چیست؟
قبل از اینکه به روش ذکر شده در عنوان نگاه کنیم، بیایید به یاد بیاوریم (و کسی می داند) بارگذاری بیش از حد روش چیست. بارگذاری بیش از حد متد جاوا اجازه می دهد تا دو یا چند روش با نام مشابه در یک کلاس تعریف شوند. این تنها در صورتی امکان پذیر است که آنها پارامترهای ورودی متفاوتی داشته باشند. در این حالت متدها overloaded و خود فرآیند را روش overloading می نامند. اضافه بار روش یکی از اصول اساسی چندشکلی در جاوا است.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- خواهد بود. همانطور که متوجه شده اید، در امضای این دو روش (آنچه متدها به عنوان آرگومان می گیرند)، نوع نماد ارسال شده به صورت 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
!
GO TO FULL VERSION