menusearch
javapro.ir

متد ()split در کلاس String

جستجو
شنبه ۱ دی ۱۴۰۳ | ۱۵:۲۹:۵
۱۳۹۶/۸/۱۴ یکشنبه
(2)
(0)
متد ()split در کلاس String
متد ()split در کلاس String
به نام خدا

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



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



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

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

متد ()split

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

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


سلام. دوست من امروز قصد داریم یکی دیگر از متدهای موجود در کلاس String را با هم بررسی کنیم.
متد ()split برای تقسیم یک String به زیر رشته های آن بر اساس جداکننده(de limit er) داده شده استفاده می‌شود.
به بیان ساده تر وقتی قصد داریم یک String را بر اساس یک علامت خاص قطعه قطعه یا تجزیه کنیم از این متد استفاده می‌کنیم.


نکته: اون علامت خاص که بر اساس آن یک String را به زیر رشته های آن تقسیم می‌کنیم همون جداکننده(de limit er) ما است.

•    با مثال متوجه خواهید شد.

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

String str ="r 2 5";
حالا قصد داریم رشته str را بر اساس فاصله بین زیر رشته های آن، تجزیه کنیم.
نکته: منظور از فاصله بین زیررشته های یک رشته همون space یا " " است.
در زیر فاصله بین زیررشته های رشته "r 2 5" را با رنگ سبز نشان داده ایم:

متد split  در جاوا
همان طور که گفتیم قصد داریم رشته str را بر اساس علامت فاصله (" ") به زیر رشته های آن تجزیه یا جدا کنیم. اگر رشته str را با استفاده از متد split و بر اساس علامت فاصله (" ") جدا کنیم، نتیجه سه رشته مجزا به صورت زیر خواهد بود:

کاربرد متد split در جاوا

•    همان طور که مشاهده کردید ما رشته "r 2 5" را با استفاده از متد split و بر اساس علامت " " به سه زیر رشته آن تقسیم(جدا) کردیم. جلوتر مثال کدنویسی میزنیم بهتر درک خواهید کرد.

متد split دارای دو پارامتر مختلف است:

String[] split(String regex):
 
•    این متد یک رشته را بر اساس یک علامت خاص به زیر رشته های آن جدا می‌کند. به بیانی دیگر این متد زیر رشته های یک String را بر اساس یک علامت خاص تکه تکه می‌کند و به صورت آرایه ای از String برمی گرداند.

•    پارامتر regex نقش علامتی که بر اساس آن String مورد نظر را قطعه قطعه می‌کنیم، برعهده دارد.
Example:
 
package java like ;

public class Test9 {

   public static void main(String[] args) {
       String str = "r 2 5";
       String array[] = str.split(" ");

       for (inti = 0; i < array.length; i++)
           System.out.println("Separated string " + i + ": " + array[i]);
   }

}
 
خروجی(output):
Separated string 0: r
Separated string 1: 2
Separated string 2: 5
 
توضیحات:

•    در مثال بالا ما رشته str را با استفاده از متد split به سه زیر رشته آن، بر اساس علامت فاصله یا " " تقسیم کرده و درون آرایه از نوع String ریخته ایم.

String str = "r 2 5";
 
•    یک String تعریف کرده ایم که بین زیر رشته های آن علامت فاصله است.
String array[] = str.split(" ");
 
•    رشته str را بر اساس علامت " " یا فاصله به زیر رشته های آن جدا کرده و درون آرایه از نوع String ریخته ایم. در هر خانه از آرایه رشته جدا شده از رشته str قرار گرفته است.
for (int i = 0; i < array.length; i++)
           System.out.println("Separated string " + i + ": " + array[i]);
   }
 
•    حال رشته های جدا شده ای که درون آرایه ما قرار گرفته اند را با دستور بالا چاپ کرده ایم.

متد دوم........


String[] split(String regex, int limit ):
 
•    این متد نیز مانند متد قبل برای جدا کردن زیر رشته های یک String بر اساس علامت خاص است. تنها تفاوت این متد با متد قبل این است که می‌توانیم برای تعداد زیر رشته های استخراج شده از یک رشته محدودیت ایجاد کنیم.

نکته: برای هر زیر رشته استخراج شده از یک رشته از اصطلاح token استفاده می‌کنیم.
مثلا اگر رشته "r 2 5" را بر اساس علامت " " تکه تکه کنیم، به هر زیر رشته آن یک token می‌گوییم. مثلا رشته"r" یک token رشته "2" یک token و رشته "5" یک token خواهد بود.

•    حالا کاربرد متد String[] split(String regex, int limit ) چیست؟ با این متد می‌توانیم تعداد token یا زیر رشته های جدا شده از یک رشته را مشخص کنیم.

•    پس متد split بر اساس regex، به تعداد   limit، زیر رشته های یک String را تکه تکه کرده و به صورت آرایه از نوع String برمی گرداند. با مثال بهتر متوجه می‌شوید.
Example:
package java like  ;

public class Test9 {

   public static void main(String[] args) {
       String str = "Welcome-to-javapro.ir";
       String array1[] = str.split("-");
       System.out.println("");
       System.out.println("Return Value :");
       for (int i = 0; i < array1.length; i++)
           System.out.println("Separated string " + i + ": " + array1[i]);

       System.out.println("");
       System.out.println("Return Value :");
       String array2[] = str.split("-", 2);

     for (int i = 0; i < array2.length; i++)
           System.out.println("Separated string " + i + ": " + array2[i]);
   }

}
 
خروجی(output):
Return Value :
Separated string 0: Welcome
Separated string 1: to
Separated string 2: javapro.ir

Return Value :
Separated string 0: Welcome
Separated string 1: to-javapro.ir
 
توضیحات:

در مثال بالا ما زیر رشته های رشته str را با دو متد مختلف split تکه تکه کردیم.

String array1[] = str.split("-");
 
•     در این دستور با استفاده از متد split و بر اساس علامت "-" تمام زیر رشته های (token های) رشته str را درون آرایه ای از نوع String ریخته ایم. در اینجا محدودیتی برای تعداد زیر رشته های جدا شده رشته str ایجاد نکردیم. و خروجی زیر رشته های استخراج شده رشته str به صورت زیر است:

Separated string 0: Welcome
Separated string 1: to
Separated string 2: javapro.ir



String array2[] = str.split("-", 2);
•    در دستور بالا ما گفتیم تنها حق داری دو زیر رشته یا token از رشته str را بر اساس علامت "-" جدا کنی. خروجی زیر رشته های جدا شده از رشته str بر اساس دستور بالا به صورت زیر خواهد بود:
Separated string 0: Welcome
Separated string 1: to-javapro.ir

•    همان طور که می‌بینید تنها دو زیر رشته از رشته str بر اساس علامت "-" جدا شده است.

Example:
 
package java like  ;
public class SplitExample {
   public static void main(String args[]) {
       String str = new String("28/12/2013");
       System.out.println("split(String regex):");
       String array1[] = str.split("/");
       for (String temp : array1) {
           System.out.println(temp);
       }
       System.out.println("split(String regex, int limit ) with limit =2:");
       String array2[] = str.split("/", 2);
     for (String temp : array2) {
           System.out.println(temp);
       }

   }
}
 
خروجی(output):
split(String regex):
28
12
2013
split(String regex, int limit ) with limit =2:
28
12/2013
 
نکته: اگر مقدار limit پارامتر موجود در متد split(String regex, int limit ) منفی یا صفر بود چه اتفاقی می‌افتد؟ با مثال به این مسئله می‌پردازیم:
Example:
در مثال زیر از متد split(String regex) استفاده کردیم.یعنی از متد split ای که محدودیتی در جدا کردن زیر رشته های یک رشته ندارد، استفاده کرده ایم.
package java like ;

public class Test110 {

   public static void main(String[] args) {
       String str = "_a_b_c_d_e_f_";
       String array2[] = str.split("_");

     for (int i = 0; i < array2.length; i++)
           System.out.println("Separated string " + i + ": " + array2[i]);

   }

}
 
خروجی(output):
Separated string 0:
Separated string 1: a
Separated string 2: b
Separated string 3: c
Separated string 4: d
Separated string 5: e
Separated string 6: f


Example:
در مثال زیر از متد split(String regex, int limit ) استفاده کردیم. و مقدار پارامتر limit را صفر قرار داده ایم:

package java like ;

public class Test110 {

  public static void main(String[] args) {
       String str = "_a_b_c_d_e_f_";
       String array2[] = str.split("_", 0);

       for (int i = 0; i < array2.length; i++)
           System.out.println("Separated string " + i + ": " + array2[i]);

   }

}
 
خروجی(output):
Separated string 0:
Separated string 1: a
Separated string 2: b
Separated string 3: c
Separated string 4: d
Separated string 5: e
Separated string 6: f
 
•    همان طور که در خروجی دو مثال قبل مشاهده می‌کنید، هیچ تفاوتی بین خروجی ها وجود ندارد. به عبارت دیگر وقتی مقدار limit پارامتر موجود در متد split(String regex, int limit ) برابر صفر قرار می‌دهیم هیچ تفاوتی با دستور split(String regex) نمی‌کند.

•    پس وقتی مقدار پارامتر limit متد split برابر صفر باشد همه زیر رشته های یک رشته بدون محدودیت بر اساس علامت مورد نظر تکه تکه می‌شوند.
Example:
در مثال زیر از متد split(String regex, int limit ) استفاده کردیم. و مقدار پارامتر limit را یک عدد منفی قرار داده ایم:
package java like  ;

public class Test110 {

   public static void main(String[] args) {
       String str = "_a_b_c_d_e_f_";
       String array2[] = str.split("_", -1);

       for (int i = 0; i < array2.length; i++)
           System.out.println("Separated string " + i + ": " + array2[i]);

   }

}
 
خروجی(output):
Separated string 0:
Separated string 1: a
Separated string 2: b
Separated string 3: c
Separated string 4: d
Separated string 5: e
Separated string 6: f
Separated string 7:

•    وقتی مقدار پارامتر limit متد split(String regex, int limit ) برابر یک عدد منفی باشد ( فرق نمیکنه چه عدد منفی باشد) ،سمت راست آخرین فضای خالی بعد علامتی که بر اساس آن یک رشته را تجزیه می‌کنیم نیز به عنوان یک زیر رشته یا token از رشته اصلی جدا می‌شود. اما در حالتی که limit برابر با صفر یا یک عدد مثبت بود آخرین فضای خالی بعد علامت جدا کننده نادیده گرفته میشد.

نتیجه گیری کلی:در متد split(String regex, int  limit ):


1.    وقتی limit برابر با صفر یا عدد مثبت باشد( limit >=0) آخرین فضای خالی بعد از علامت جدا کننده نادیده گرفته می‌شود:شکل(1)

کاربرد متد split در جاوا

•    منظور از فضای خالی بعد از آخرین علامت جداکننده بخشی است که با فلش بهش اشاره شده است. خب بله حق دارید فضای خالی بعد از آخرین علامت "_" دیده نمی‌شود اما دیگه متد split با مقدر limit منفی اون فضا را در نظر می‌گیرد.



2.    وقتی limit برابر یک عدد منفی باشد ( limit <0) فضای سفید بعد از آخرین علامت جداکننده به عنوان یک زیر رشته یا token در نظر گرفته می‌شود.

متد split با همه پارامترهای مختلف و مقدار limit های مثبت یا منفی یا صفر، اولین فضای سفید قبل از علامت جداکننده را درنظر می‌گیرند:شکل(2)


کاربرد متد split در جاوا

نکته مهم: اگر در یک رشته در کنار هم علامت جدا کننده تکراری داشته باشیم چه اتفاقی می‌افتد؟ به مثال زیر توجه کنید:


.....ادامه این جلسه آموزشی رو به صورت کتاب الکترونیکی (PDF) در لینک زیر دانلود کنید:



کانال تلگرام آموزش جاوا


این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)


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


باز نشر این مطلب تنها بصورت PDF و با ذکر منبع (لینک سایت) بلامانع است.

برای با خبر شدن از جدیدترین مطالب آموزشی جاواعضو کانال تلگرام ما شوید.
هدر سایت
دوره برنامه نویسی Spring Core
مشاهده سرفصل ها و ثبت نام در دوره 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)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب