menusearch
javapro.ir
جستجو
۱۳۹۶/۸/۷ یکشنبه
(2)
(0)
متد () indexOf در کلاس String جاوا
متد  () indexOf در کلاس String جاوا
به نام خدا

        
تقدیم به هموطنان عزیزم



جاوا را با لذت یاد بگیر!

آموزش زبان برنامه نویسی جاوا

نمونه مثال از کلاس String

متد ()indexOf

نویسنده : رحمان زارعی

جاوا را ساده،آسان و شیرین بنوشید!!!

سلام. روزت به خیر. دوست عزیز متد () indexOf برای پیدا کردن ایندکس(index) یک کاراکتر خاص یا زیر رشته ای (substring) از یک رشته(String) مشخص در جاوا کاربرد دارد.

ایندکس(index) چیست؟ به شماره خانه های کاراکترهای موجود در یک String ایندکس(index) می گویند.

مثال: ایندکس های رشته "String str = "javalike به صورت زیر است:

ایندکس های String

•    مثلا ایندکس کاراکتر 'j' برابر 0 و ایندکس کاراکتر'e' برابر 7 می باشد.

متد ()indexOf با چهار پارامتر مختلف در  کلاس String  وجود دارد:

 
int indexOf(int ch)

ایندکس(index) اولین کاراکتر ch موجود در یک String را برمی گرداند.
 
 
package javalike;

public class Test4 {

    public static void main(String[] args) {
        String str = "javalike";
        System.out.println(str.indexOf('a'));
}
    }
 
خروجی(output):
 
1

•    در برنامه بالا قصد داریم که شماره ایندکس کاراکتر 'a' را در رشته "str = "javalike پیدا کنیم.برای این کار از متد indexOf(int ch) استفاده کرده ایم.با وجود این که کاراکتر 'a' در دو ایندکس متفاوت از رشته "javalike" قرار گرفته است ، یعنی هم در ایندکس شماره 0 و هم در ایندکس شماره 3 در رشته "javalike"  کاراکتر 'a' موجود می باشد، اما متد indexOf(int ch) ، ایندکس شماره 1 را به ما داد.چرا؟ زیرا متد indexOf(int ch) ایندکس(index) اولین کاراکتر ch موجود در یک String را برمی گرداند.

نکته:در متد indexOf(int ch) اگر کاراکتر ch در یک String پیدا نشد ، این متد مقدار -1 را برای ما برمی گرداند.
Example:
 
package javalike;

public class Test4 {

    public static void main(String[] args) {
        String str = "javalike";
        System.out.println(str.indexOf('D'));

    }

}
 
خروجی(output):
 
-1

•    به دلیل این که کاراکتر 'D' در رشته "javalike" وجود نداشت ، متد indexOf مقدار -1 را به عنوان خروجی به ما پس داد.
 
int indexOf(intch, intfromindex)

این متد چکار می کنید؟! این متد ایندکس اولین کاراکتر ch موجود در یک String را برمی گرداند. پارامتر fromindex چه نقشی برعهده دارد؟ نقطه شروع بررسی کاراکترهای String برای پیدا کردن ایندکس کاراکتر ch از خانه(ایندکس) fromindex رشته(String) می باشد. براتون مثال میزنم که این توضیح رو متوجه بشید.

 
 
package javalike;

public class Test4 {

    public static void main(String[] args) {
        String str = "javalike";
        System.out.println(str.indexOf('a'));

    }

}

خروجی(output):
 
1

•    در مثال بالا متد indexOf شماره ایندکس اولین کاراکتر  'a' موجود در رشته "javalike" را برای ما به دست آورد.یعنی متد indexOf شماره ایندکس کاراکتر  'a'  موجود در رشته "javalike" که بعد از حرف 'j' و قبل از حرف 'v' قرار داشت را برای ما برگرداند.

•    حالا ما قصد داریم که شماره کاراکتر 'a' که بعد از حرف 'v' و قبل از حرف 'l'  در رشته "javalike"  قرار دارد را به دست آوریم. برای این کار ما باید به خانم!!! indexOf بگیم از یک نقطه مشخصی که ما برات تعیین می کنیم شروع به پیدا کردن ایندکس کاراکتر مورد نظر ما که در اینجا کاراکتر 'a' که بعد از حرف 'v' و قبل از حرف 'l' قرار دارد، کن.

•    ابتدا باید از متد  indexOf(int ch, int fromindex) استفاده کنیم. به جای پارامتر ch کاراکتر مورد نظر که در اینجا کاراکتر ما 'a' می باشد و به جای پارامتر fromindex نقطه(ایندکس) شروع بررسی کاراکتر به کاراکتر رشته مورد نظر که در اینجا "javalike" است را قرا می دهیم.
Example:

 
package javalike;

public class Test4 {

    public static void main(String[] args) {
        String str = "javalike";
        System.out.println(str.indexOf('a', 2));

    }

}
 
خروجی(output):
 
3

•    در مثال بالا ما ایندکس کاراکتر 'a' را از خانه شماره 2 یعنی از کاراکتر 'v' رشته "javalike" شروع به بررسی و پیدا کردن، کردیم.چرا؟ چون هدف ما به دست آورن ایندکس کاراکتر 'a' بعد از کاراکتر 'v' و قبل از کاراکتر 'l' که در رشته "javalike" قرار داشت، بود.


•    دستور str.indexOf('a', 2) کاراکتر 'a' را از ایندکس شماره 2 رشته "javalike" بررسی کرده، و در صورت وجود داشتن ، ایندکس آن را به ما برمی گرداند.به عبارتی دیگر هنگام بررسی کاراکترهای 'j ' ,'a' که ابتدای رشته "javalike" قرار داشتند را نادیده گرفته است.


•    به زبان ساده براتون بگم؟! معنی دستور str.indexOf('a', 2) اینه که، میگه ایندکس کاراکتر 'a' رو از کاراکتر 2 به بعد رشته str بررسی و پیدا کن.



نتیجه کلی:در کل اگر قصد داریم از نقطه خاصی(fromindex) از یک String شروع به پیدا کردن ایندکس کاراکتر مورد نظر(ch) خود کنیم از متد زیر استفاده می کنیم.
 
int indexOf(int ch, int fromindex)
 
متد بعدی.........

 
int indexOf(String str):
 
•    ایندکس رشته str را در یک String مشخص برمی گرداند.
نکته: برخی مباحث هستند که توضیح دادنشون بیشتر آدمو رو برای یادگیری گیج میکنه، به همین خاطر بهتره با مثال های متعدد مفهوم اون مبحث رو یاد بگیریم.
Example:
 
package javalike;

public class Test4 {

    public static void main(String[] args) {
        String a = "javalike";
           String str="like";
        System.out.println(a.indexOf(str));

    }

}
 
خروجی(output):
 
4

•    در مثال بالا رشته "like" در ایندکس شماره 4 رشته "javalike" قرار داشت. به همین خاطر دستور a.indexOf(str) مقدار 4 را برای ما برگرداند.

 
Example:
 
package javalike;

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.println(a.indexOf(str1));
        System.out.println(a.indexOf(str2));
        System.out.println(a.indexOf(str3));
        System.out.println(a.indexOf(str4));
        System.out.println(a.indexOf(str5));
        System.out.println(a.indexOf(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 indexOf(String str, intfromindex)

•    این متد برای پیدا کردن ایندکس رشته str از ایندکس fromindex شروع به بررسی String مورد نظر می کند. به عبارتی دیگر اولین رشته str بعد از ایندکس fromindex رشته مورد نظر را پیدا می کند.

Example:

 
package  javalike;

public  class  Test4 {

    public  static  void  main(String[] args) {

        String  a = "java like free java";

        String  str1 = "java";

        System.out.println(a.indexOf(str1, 3));
    }

}

 
خروجی(output):
 
15

توضیحات:
 
System.out.println(a.indexOf(str1, 3));
 
•    در دستور بالا گفته شده است ایندکس رشته str1 را از ایندکس سوم به بعد رشته a بررسی کن و در صورت موجود بودن برای ما برگردان.

•    با وجود این که رشته "java"  را در ابتدای رشته a داریم یعنی در ایندکس شماره 0 اما به دلیل این که به متد  indexOf(str1, 3) گفتیم ایندکس های سوم به بعد رشته a رو بررسی کن ، ایندکس های 0 تا 2 رشته a نادیده گرفته می شوند و متد indexOf از ایندکس سوم به بعد میگرده و ایندکس رشته str1 را در رشته a پیدا می کند.


نکته: همه چهار متد مختلف indexOf در صورت پیدا نکردن کاراکتر یا String مورد نظر در یک String مشخص مقدار
-1 را برای ما برمیگردانند.

 
Example:
 
package javalike;
public class indexOfExample {
    public static void main(String args[]) {
        String str1 = new String("This is a javalike tutorial");
        String str2 = new String("java");
        String str3 = new String("like");
        String str4 = new String("likes");
        System.out.println("index of j in str1: " + str1.indexOf('j'));
        System.out.println("index of j in str1 after 10th char:"
                + str1.indexOf('i', 10));
        System.out.println("index of j in str1 after 30th char:"
                + str1.indexOf('j', 30));
        System.out
                .println("index of string str2 in str1:" + str1.indexOf(str2));
        System.out.println("index of str2 after 15th char:"
                + str1.indexOf(str2, 15));
        System.out.println("index of string str3:" + str1.indexOf(str3));
        System.out.println("index of string str4:" + str1.indexOf(str4));
        System.out.println("index of harcoded string:" + str1.indexOf("is"));
        System.out.println("index of hardcoded string after 4th char:"
                + str1.indexOf("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 شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)



کتاب آموزش جاوا
لینک دانلود


باز نشر این مطلب تنها بصورت PDF و با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
طراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتیطراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتی