menusearch
javapro.ir

متد ()startsWith در کلاس String جاوا

جستجو
دوشنبه ۱۲ آذر ۱۴۰۳ | ۲۳:۰:۳۶
۱۳۹۶/۸/۲ سه شنبه
(2)
(0)
متد ()startsWith در کلاس String جاوا
متد ()startsWith در کلاس String جاوا
سلام. روزت بخیر دوست من 😊
در این جلسه آموزشی قصد داریم به بررسی متد ()startsWith یکی از متدهای موجود در کلاس String بپردازیم.
برای چک کردن پیشوند(prefix) یک String از این متد استفاده می‌کنیم. میدونم الان سوال برات پیش اومده که چی شد!! یعنی چه؟!!!

بریم سراغ زبان فارسی 😊😊😊

به چه چیزی پیشوند می‌گویم؟!
در دستور زبان، به کلمه یا حرفی که اول کلمه دیگر قرار بگیرد و معنی آن را تغییر دهد، پیشوند می‌گوییم.
خب ما در اینجا کاری به تغییر معنی کلمه نداریم! پس با چه کار داریم؟! در بالا گفتیم، "به کلمه ای که اول کلمه ی دیگر قرار بگیرد پیشوند می‌گوییم" ما به این بخش از معنی پیشوند کار داریم.

در جمله "به کلمه ای که اول کلمه ی دیگر قرار بگیرد پیشوند می‌گوییم" اون واژه اول خیلی برامون مهم است!

مثال:
پیشوند کلمه "برانگیختن" می‌تواند کلمه "بر" باشد.چرا؟ چون کلمه"بر" اول یا ابتدای کلمه "برانگیختن" قرار گرفته است.
پیشوند کلمه "فراخور" می‌تواند کلمه "فر" باشد. چرا؟ چون کلمه "فر" اول و ابتدای کلمه "فراخور" قرار گرفته است.

•    بنا بر رسم اخلاق منبع سایتی که معنی کلمه پیشوندی رو ازش استخراج کردم رو براتون میزارم:

پس در صورتی کلمه a1 می‌تواند پیشوند کلمه a2 باشد که کلمه a1 ابتدای کلمه a2 قرار بگیرد.
 
a1="java";
a2="java like ";

در مثال بالا a1 پیشوند(prefix) a2 است، زیرا String(رشته) a1 ابتدای کلمه a2 قرار گرفته است.
 
a1=" like ";
a2="java like ";
در مثل بالا a1 پیشوند(prefix) کلمه a2 نیست.زیرا کلمه a1 ابتدای کلمه a2 قرار نگرفته است.

•    پس تا اینجا یاد گرفتیم که کلمه ای که ابتدا و آغاز کلمه دیگری قرار بگیرد ،اون کلمه نقش پیشوند(prefix) کلمه دیگر رو برعهده دارد.

همان طور که ابتدای جلسه گفتیم متد ()startsWith برای چک کردن پیشوند(prefix) یک String کاربرد دارد.

حالا معنای پیشوند(prefix) برای متد ()startsWith چیست؟

با مثال براتون توضیح میدم که مفهومش بهتر روشن بشه:

فرض کنید یک String با نام a1 به صورت زیر داشته باشیم:

String a1 = "javapro.ir";
 
و String دیگری با نام a2 به صورت زیر داشته باشیم:

String a2 = "javapro";


•     String(رشته) a2 پیشوند String(رشته) a1 است. چرا ؟ چون رشته a2 ابتدای رشته a1 قرار گرفته است.

حال فرض کنید رشته a1 به صورت زیر باشد:

String a1 = "Java Tutorial for Complete Beginners";

و رشته a2 نیز به صورت زیر باشد:

String a2 = "Java Tutorial";


•    در اینجا String(رشته) a2 پیشوند String(رشته) a1 است. چرا ؟ چون رشته a2 ابتدای رشته a1 قرار گرفته است.
•    در اینجا خبری از کلمه نبود! بلکه حرف از رشته(String) بود، "به دنباله ای از کاراکتر ها، رشته می‌گوییم" پس اگر رشته ای (String) ابتدای یا آغاز کننده رشته ای (String) دیگر بود، به اون رشته آغاز کننده پیشوند(prefix) می‌گوییم.

اووووووووووووف!!! کل اینارو گفتم که بدونید که کار متد ()startsWith چیست! متد ()startsWith میاد یک String رو چک می‌کنه که آیا پیشوند(prefix) رشته ای دیگر هست یا خیر؟! جلوتر مثال می‌زنیم که بهتر متوجه بشید.

متد ()startsWith با دو پارامتر مجزا وجود دارد:

boolean startsWith(String str):

•    این متد رشته str را چک می‌کند که ایا پیشوند رشته ای دیگر است یا خیر؟ به عبارت دیگر چک می‌کند که آیا رشته str آغاز کننده و ابتدای رشته دیگری هست یا خیر؟ اگر بود مقدار true و اگر نبود مقدار false را به ما پس می‌دهد.
Example:
1.    package java like ;
2.  public class StartsWithMethodExample {
3.    public static void main(String args[]) {
4.    String str1 = "Java Tutorial for Complete Beginners";
5.    String str2 = "Java Tutorial";
6.    System.out. print ln(str1.startsWith(str2));
7.    System.out. print ln(str1.startsWith("for Complete"));
8.    System.out. print ln(str1.startsWith("Java"));
9.    System.out. print ln(str1.startsWith("Ja"));
10.    System.out. print ln(str1.startsWith("J"));
11.    System.out. print ln(str1.startsWith("Tutorial"));
12.    System.out. print ln(str1.startsWith("Beginners"));
13.    }
14.    }
 
خروجی(output):
true
false
true
true
true
false
false

4.    یک String تعریف کرده و آن را مقداردهی اولیه کرده ایم.

5.    یک String دیگر تعریف کرده و آن را مقداردهی اولیه کرده ایم.

6.    با استفاده از متد startsWith را چک کرده ایم که آیا رشته str2 پیشوند(prefix) رشته str1 هست یا خیر. به دلیل این که رشته str2 ابتدای رشته str1 قرار گرفته است، پس str2 پیشوند str1 است و خروجی مقدار true می‌شود.

7.    در خط هفتم رشته "for Complete" جزیی از رشته str1 است اما به دلیل این که ابتدای رشته str1 قرار نگرفته است، پس رشته "for Complete" پیشوند رشته str1 نیست و مقدار خروجی false است.

8.    در خط هشتم رشته "Java" ابتدای رشته str1 قرار گرفته است، پس رشته "Java" پیشوند رشته str1 است، و مقدار خروجی true است.

9.    در خط نهم رشته "Ja" ابتدای رشته str1 قرار گرفته است، پس رشته "Ja" پیشوند رشته str1 است، و مقدار خروجی true است

10.    در خط دهم رشته "J" ابتدای رشته str1 قرار گرفته است، پس رشته "J" پیشوند رشته str1 است، و مقدار خروجی true است

11.    در خط یازدهم رشته "Tutorial" جزیی از رشته str1 است اما به دلیل این که ابتدای رشته str1 قرار نگرفته است، پس رشته "Tutorial" پیشوند رشته str1 نیست و مقدار خروجی false است.

12.    در خط دوازدهم رشته "Beginners" جزیی از رشته str1 است اما به دلیل این که ابتدای رشته str1 قرار نگرفته است، پس رشته "Beginners" پیشوند رشته str1 نیست و مقدار خروجی false است.


نتیجه گیری کلی:اگر رشته s1 آغاز کننده و ابتدای رشته s2 قرار گرفته باشد، رشته s1 پیشوند(prefix) رشته s2 است، حالا متد startsWith کارش چک کردن این است که یک رشته پیشوند رشته دیگر هست یا خیر.

چطور بود؟ امیدوارم تا اینجا به صورت ساده و روان آموزش داده باشم. 😊

boolean startsWith(String str, int from  index )

•    این متد نیز برای چک کردن پیشوند بودن یا نبودن یک String در String ای دیگر کاربرد دارد.تنها یک تفاوت دارد و اون پارامتر from  index است.

•    نقش پارامتر from  index چیست؟ اگر رشته str از نقطه from  index رشته مورد نظر آغاز شده باشد،رشته str پیشوند رشته مورد نظر است. باز میدونم معلوم نشد چی چی شد!!!! مثال میزنم که بهتر متوجه بشید.

•    فرض کنید یک String با نام a به صورت زیر داشته باشیم:


String a="java like Tutorial";

و همچنین String دیگری با نام str به صورت زیر داشته باشیم:
String str=" like Tutorial";

حال متد startsWith(String str, int from  index ) را به صورت زیر صدا می‌زنیم:

a.startsWith(str, 5)

•    به دلیل این که از ایندکس شماره پنجم رشته str پیشوند رشته a است، متد startsWith مقدار true برمی گرداند.
•    برای درک بهتر به ایندکس های رشته a در زیر توجه کنید:


ایندکس های رشته "a="java like Tutorial به صورت زیر است:

ایندکس های String

از طرفی طبق متد a.startsWith(str, 5) مقدار from  index برابر 5 است، و رشته ای که قراره به عنوان پیشوند بودن یا نبودن رشته a چک شود برابر"str=" like Tutorial است. در اینجا گفته شده که from  index برابر 5 است، یعنی رشته str را از ایندکس پنجم رشته a بررسی کن، اگر پیشوند بود مقدار true و در غیر این صورت مقدار false رو متد a.startsWith(str, 5) به ما پس می‌دهد.
ایندکس پنجم به بعد رشته a را با رنگ سبز مشخص کرده ایم:


آموزش String
حال اگر رشته str از ایندکس پنجم رشته a پیشوند بود متد a.startsWith(str, 5) مقدار true را برمی گرداند، همان طور که می‌بینید رشته str ابتدای ایندکس پنجم رشته a قرار گرفته است(ناحیه سبز رنگ)پس رشته str پیشوند رشته a است.

a.startsWith(str, n)

به طور کلی در متد startsWith اگر رشته str در ایندکس n ام رشته a پیشوند بود، این متد مقدار true برمی گرداند و در غیر این صورت مقدار false را به ما پس می‌دهد. یا به عبارتی دیگر اگر رشته str آغازکننده در ایندکس n ام رشته a بود ،رشته str پیشوند رشته a خواهد بود و متد startsWith مقدار true برمی گرداند و در غیر این صورت مقدار false برمی گرداند.

خب شاید براتون توضیحات واضع نبوده باشه،چاره چیست؟نگران نباشید، به مثال های زیر توجه کنید قطعا مفهومش دستتون میاد:

String a="java like ";
String str=" like ";

مثال از String در جاوا

طبق شکل(1)، ما یک String(رشته) با نام a و یک String(رشته) با نام str داریم.ایندکس های رشته a را در شکل(1) مشاهده می‌کنید که با توجه به تعداد کاراکترهای رشته a از 0 تا 7 است.حال قصد داریم پیشوند بودن رشته str در ایندکس های متفاوت رشته a را با استفاده از متد startsWith چک کنیم:
Example:
1.    package java like ;
2.    public class TestStartsWith {
3.  public static void main(String[] args) {
4.    String a = "java like ";
5.    String str = " like ";
6.    System.out. print ln(a.startsWith(str, 4));
7.    }
8.    }
 
خروجی(output):
true

•    با توجه به شکل(1) و دستور خط شماره 6، رشته str در ایندکس 4 رشته a، پیشوند رشته a است.به همین دلیل خروجی true است.
Example:
package java like ;

public class TestStartsWith {

   public static void main(String[] args) {
       String a = "java like ";
       String str = " like ";
       System.out. print ln(a.startsWith(str, 0));
       
   }

}
 
خروجی(output):
false

•    خروجی false است.زیرا رشته str در ایندکس شماره 0 رشته a، پیشوند رشته a نیست. به عبارتی رشته str در ایندکس شماره 0 رشته a آغازکننده نیست.
Example:
package java like ;

public class StartsWithExample {
   public static void main(String args[]) {
       String str = new String("quick brown fox jumps over the lazy dog");

       System.out. print ln("String str starts with quick: "+ str.startsWith("quick"));
       System.out. print ln("String str starts with brown: "+ str.startsWith("brown"));
       System.out. print ln(" substring of str(starting from 6th index ) has brown prefix: "
                       + str.startsWith("brown", 6));
       System.out. print ln(" substring of str(starting from 6th index ) has quick prefix: "
                       + str.startsWith("quick", 6));

   }
}
 
خروجی(output):
String str starts with quick: true
String str starts with brown: false
substring of str(starting from 6th index ) has brown prefix: true
substring of str(starting from 6th index ) has quick prefix: false

توضیحات:

String str = new String("quick brown fox jumps over the lazy dog");
System.out. print ln("String str starts with quick: "
+ str.startsWith("quick"));
 
•    یک رشته با نام str داریم و بررسی کردیم که آیا رشته "quick" پیشوند رشته str هست یا خیر. به دلیل این که رشته "quick" ابتدا و اغاز کننده رشته str است، پیشوند رشته str است و خروجی متد startsWith مقدار true خواهد بود.
System.out. print ln("String str starts with brown: "
               + str.startsWith("brown"));
 
•    به دلیل این که رشته "brown" ابتدا و آغاز کننده در رشته str نیست یا به عبارت دیگر پیشوند رشته str نیست خروجی متد startsWith مقدار false خواهد بود.

System.out. print ln(" substring of str(starting from 6th index ) has brown prefix: "+ str.startsWith("brown", 6));
 
خب اینجا از متد startsWith که ایندکس میگیرد استفاده کرده ایم. گفته آیا رشته "brown" در ایندکس شماره شش رشته str پیشوند است یا خیر؟ با هم ایندکس های رشته str را می‌شماریم:

آموزش String در جاوا
•    همان طور که در بالا می‌بینید، رشته "brown" در ایندکس شماره 6 رشته str پیشوند است، زیر رشته "brown" ابتدای ایندکس شماره 6 رشته a قرار گرفته است. پس خروجی دستور str.startsWith("brown", 6) برابر true است.
System.out. print ln(" substring of str(starting from 6th index ) has quick prefix: "+ str.startsWith("quick", 6));
 
•    به دلیل این که رشته "quick" در ایندکس شماره 6 رشته str پیشوند نیست، مقدار خروجی دستور str.startsWith("quick", 6) برابر fasle است.

پیروز و موفق باشید
کانال تلگرام آموزش جاوا
این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)


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

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

هدر سایت
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی