سلام. روزت به خیر. دوست عزیز متد () index Of برای پیدا کردن ایندکس( index ) یک کاراکتر خاص یا زیر رشته ای ( substring ) از یک رشته(String) مشخص در جاوا کاربرد دارد.
ایندکس( index ) چیست؟ به شماره خانه های کاراکترهای موجود در یک String ایندکس( index ) میگویند.
مثال: ایندکس های رشته "String str = "java like به صورت زیر است:
• مثلا ایندکس کاراکتر 'j' برابر 0 و ایندکس کاراکتر'e' برابر 7 است.
متد () index Of با چهار پارامتر مختلف در کلاس String وجود دارد:
int index Of(int ch)
ایندکس( index ) اولین کاراکتر ch موجود در یک String را برمی گرداند.
package java like ;
public class Test4 {
public static void main(String[] args) {
String str = "java like ";
System.out. print ln(str. index Of('a'));
}
}
خروجی(output):
1
• در برنامه بالا قصد داریم که شماره ایندکس کاراکتر 'a' را در رشته "str = "java like پیدا کنیم.برای این کار از متد index Of(int ch) استفاده کرده ایم.با وجود این که کاراکتر 'a' در دو ایندکس متفاوت از رشته "java like " قرار گرفته است، یعنی هم در ایندکس شماره 0 و هم در ایندکس شماره 3 در رشته "java like " کاراکتر 'a' موجود است، اما متد index Of(int ch)، ایندکس شماره 1 را به ما داد.چرا؟ زیرا متد index Of(int ch) ایندکس( index ) اولین کاراکتر ch موجود در یک String را برمی گرداند.
نکته:در متد index Of(int ch) اگر کاراکتر ch در یک String پیدا نشد، این متد مقدار -1 را برای ما برمی گرداند.
Example:
package java like ;
public class Test4 {
public static void main(String[] args) {
String str = "java like ";
System.out. print ln(str. index Of('D'));
}
}
خروجی(output):
-1
• به دلیل این که کاراکتر 'D' در رشته "java like " وجود نداشت، متد index Of مقدار -1 را به عنوان خروجی به ما پس داد.
int index Of(intch, int from index )
این متد چکار میکنید؟! این متد ایندکس اولین کاراکتر ch موجود در یک String را برمی گرداند. پارامتر from index چه نقشی برعهده دارد؟ نقطه شروع بررسی کاراکترهای String برای پیدا کردن ایندکس کاراکتر ch از خانه(ایندکس) from index رشته(String) است. براتون مثال میزنم که این توضیح رو متوجه بشید.
package java like ;
public class Test4 {
public static void main(String[] args) {
String str = "java like ";
System.out. print ln(str. index Of('a'));
}
}
خروجی(output):
1
• در مثال بالا متد index Of شماره ایندکس اولین کاراکتر 'a' موجود در رشته "java like " را برای ما به دست آورد.یعنی متد index Of شماره ایندکس کاراکتر 'a' موجود در رشته "java like " که بعد از حرف 'j' و قبل از حرف 'v' قرار داشت را برای ما برگرداند.
• حالا ما قصد داریم که شماره کاراکتر 'a' که بعد از حرف 'v' و قبل از حرف 'l' در رشته "java like " قرار دارد را به دست آوریم. برای این کار ما باید به خانم!!! index Of بگیم از یک نقطه مشخصی که ما برات تعیین میکنیم شروع به پیدا کردن ایندکس کاراکتر مورد نظر ما که در اینجا کاراکتر 'a' که بعد از حرف 'v' و قبل از حرف 'l' قرار دارد، کن.
• ابتدا باید از متد index Of(int ch, int from index ) استفاده کنیم. به جای پارامتر ch کاراکتر مورد نظر که در اینجا کاراکتر ما 'a' است و به جای پارامتر from index نقطه(ایندکس) شروع بررسی کاراکتر به کاراکتر رشته مورد نظر که در اینجا "java like " است را قرا میدهیم.
Example:
package java like ;
public class Test4 {
public static void main(String[] args) {
String str = "java like ";
System.out. print ln(str. index Of('a', 2));
}
}
خروجی(output):
3
• در مثال بالا ما ایندکس کاراکتر 'a' را از خانه شماره 2 یعنی از کاراکتر 'v' رشته "java like " شروع به بررسی و پیدا کردن، کردیم.چرا؟ چون هدف ما به دست آورن ایندکس کاراکتر 'a' بعد از کاراکتر 'v' و قبل از کاراکتر 'l' که در رشته "java like " قرار داشت، بود.
• دستور str. index Of('a', 2) کاراکتر 'a' را از ایندکس شماره 2 رشته "java like " بررسی کرده، و در صورت وجود داشتن، ایندکس آن را به ما برمی گرداند.به عبارتی دیگر هنگام بررسی کاراکترهای 'j ' ,'a' که ابتدای رشته "java like " قرار داشتند را نادیده گرفته است.
• به زبان ساده براتون بگم؟! معنی دستور str. index Of('a', 2) اینه که، میگه ایندکس کاراکتر 'a' رو از کاراکتر 2 به بعد رشته str بررسی و پیدا کن.
نتیجه کلی:در کل اگر قصد داریم از نقطه خاصی( from index ) از یک String شروع به پیدا کردن ایندکس کاراکتر مورد نظر(ch) خود کنیم از متد زیر استفاده میکنیم.
int index Of(int ch, int from index )
متد بعدی.........
int index Of(String str):
• ایندکس رشته str را در یک String مشخص برمی گرداند.
نکته: برخی مباحث هستند که توضیح دادنشون بیشتر آدمو رو برای یادگیری گیج میکنه، به همین خاطر بهتره با مثال های متعدد مفهوم اون مبحث رو یاد بگیریم.
Example:
package java like ;
public class Test4 {
public static void main(String[] args) {
String a = "java like ";
String str=" like ";
System.out. print ln(a. index Of(str));
}
}
خروجی(output):
4
• در مثال بالا رشته " like " در ایندکس شماره 4 رشته "java like " قرار داشت. به همین خاطر دستور a. index Of(str) مقدار 4 را برای ما برگرداند.
Example:
package java like ;
public class Test4 {
public static void main(String[] args) {
String a = "java like free";
String str1 = "java";
String str2 = " like ";
String str3 = "free";
String str4 = " like free";
String str5 = "java like ";
String str6 = "ke";
System.out. print ln(a. index Of(str1));
System.out. print ln(a. index Of(str2));
System.out. print ln(a. index Of(str3));
System.out. print ln(a. index Of(str4));
System.out. print ln(a. index Of(str5));
System.out. print ln(a. index Of(str6));
}
}
خروجی(output):
0
5
10
5
0
7
• در مثال بالا رشته "java" در خانه (ایندکس) شماره 0 رشته a قرار دارد.
• در مثال بالا رشته " like " در خانه (ایندکس) شماره 5 رشته a قرار دارد.
• در مثال بالا رشته "free" در خانه (ایندکس) شماره 10 رشته a قرار دارد.
• در مثال بالا رشته " like free" در خانه (ایندکس) شماره 5 رشته a قرار دارد.
• در مثال بالا رشته "java like " در خانه (ایندکس) شماره 0 رشته a قرار دارد.
• در مثال بالا رشته "ke" در خانه (ایندکس) شماره 7 رشته a قرار دارد.
نکته: شماره ایندکس اولین کاراکتر رشته str در یک String مشخص، تعیین کننده ایندکس رشته str است. مثلا: در مثال بالا رشته str3 = "free"; در رشته "a = "java like free موجود است. شماره ایندکس کاراکتر 'f' رشته "free" در رشته "java like free" برابر 10 است، پس شماره ایندکس رشته "free" در رشته "java like free" نیز برابر 10 است.
متد بعدی.........
int index Of(String str, int from index )
• این متد برای پیدا کردن ایندکس رشته str از ایندکس from index شروع به بررسی String مورد نظر میکند. به عبارتی دیگر اولین رشته str بعد از ایندکس from index رشته مورد نظر را پیدا میکند.
Example:
package java like ;
public class Test4 {
public static void main(String[] args) {
String a = "java like free java";
String str1 = "java";
System.out. print ln(a. index Of(str1, 3));
}
}
خروجی(output):
15
توضیحات:
System.out. print ln(a. index Of(str1, 3));
• در دستور بالا گفته شده است ایندکس رشته str1 را از ایندکس سوم به بعد رشته a بررسی کن و در صورت موجود بودن برای ما برگردان.
• با وجود این که رشته "java" را در ابتدای رشته a داریم یعنی در ایندکس شماره 0 اما به دلیل این که به متد index Of(str1, 3) گفتیم ایندکس های سوم به بعد رشته a رو بررسی کن، ایندکس های 0 تا 2 رشته a نادیده گرفته میشوند و متد index Of از ایندکس سوم به بعد میگرده و ایندکس رشته str1 را در رشته a پیدا میکند.
نکته: همه چهار متد مختلف index Of در صورت پیدا نکردن کاراکتر یا String مورد نظر در یک String مشخص مقدار
-1 را برای ما برمیگردانند.
Example:
package java like ; public class index OfExample { public static void main(String args[]) {
String str1 = new String("This is a java like tutorial");
String str2 = new String("java");
String str3 = new String(" like ");
String str4 = new String(" like s");
System.out. print ln(" index of j in str1: " + str1. index Of('j'));
System.out. print ln(" index of j in str1 after 10th char:"
+ str1. index Of('i', 10));
System.out. print ln(" index of j in str1 after 30th char:"
+ str1. index Of('j', 30));
System.out
. print ln(" index of string str2 in str1:" + str1. index Of(str2));
System.out. print ln(" index of str2 after 15th char:"
+ str1. index Of(str2, 15));
System.out. print ln(" index of string str3:" + str1. index Of(str3));
System.out. print ln(" index of string str4:" + str1. index Of(str4));
System.out. print ln(" index of harcoded string:" + str1. index Of("is"));
System.out. print ln(" index of hardcoded string after 4th char:"
+ str1. index Of("is", 4));
}
}
خروجی(output):
index of j in str1: 10
index of j in str1 after 10th char:15
index of j in str1 after 30th char:-1
index of string str2 in str1:10
index of str2 after 15th char:-1
index of string str3:14
index of string str4:-1
index of harcoded string:2
index of hardcoded string after 4th char:5
پیروز و موفق باشید
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)