در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار

با سلام به همه دوستان و همراهان Itpro. در ادامه مطالب در مورد کلاس String زبان برنامه نویسی جاوا به ادامه توضیحات متدهای موجود در این کلاس می پردازیم.

متد Split

یک متن را در نظر بگیرید که می خواهیم کلمات را پیدا کنیم. به شکلی که متن را با تعداد کاراکتر های فاصله ای که گذاشته شده جدا کنیم و در قالب یک آرایه نشان دهیم. برای این کار از متد split استفاده می کنیم. این متد دارای دو شکل است که شکل های آن در کد زیر آورده شده است:

public String[] split(String regex, int limit)

or

public String[] split(String regex)

آرگومان های ورودی این متد یک regular expression می باشد که تعیین می کند که متن را طبق چه کاراکتر یا کاراکترهایی تجزیه کنیم. برای مثال اگر شما بخواهید متن را توسط علامت فاصله جدا کنیم در این قسمت علامت فاصله خواهیم گذاشت. آرگومان limit برای این است که تعداد رشته های تجزیه شده را نشان بدهد. خروجی این متد یک آرایه رشته ای می باشد که رشته های تجزیه شده را در داخل آن آرایه می ریزد. برای درک راحت تر این متد به کد زیر توجه کنید:

import java.io.*;

public class Test{
   public static void main(String args[]){
       String Str = new String("Welcome to Itpro.ir");

        System.out.println("Return Value :" );
        for (String retval: Str.split(" ", 2)){
            System.out.println(retval);
        }
        System.out.println("");
        System.out.println("Return Value :" );
        for (String retval: Str.split(" ", 3)){
            System.out.println(retval);
        }
        System.out.println("");
        System.out.println("Return Value :" );
        for (String retval: Str.split(" ", 1)){
            System.out.println(retval);
        }
        System.out.println("");
        System.out.println("Return Value :" );
        for (String retval: Str.split(" ")) {
            System.out.println(retval);
        }
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

Return Value :
Welcome
to Itpro.ir

Return Value :
Welcome
to
Itpro.ir

Return Value :
Welcome to Itpro.ir

Return Value :
Welcome
to
Itpro.ir

متد startsWith

این متد کاری خلاف متد endsWith انجام می دهد. به این معنی که بررسی می کند که آیا متن با رشته خاصی شروع شده است یا خیر. این متد دارای دو شکل است که در شکل اولیه مشخص می کند که ابتدای متن با رشته خاصی شروع شده است یا نه و در شکل دوم مشخص می کند که آیا از اندیس مشخص شده به بعد متن با رشته مورد نظر شروع شده است یا خیر. خروجی این متد یک مقدار Boolean است که اگر متن با رشته گفته شده شروع شده باشد مقدار true و در غیر این صورت مقدار false دارد. شکل های متفاوت این متد به شرح زیر است:

public boolean startsWith(String prefix, int toffset)

or

public boolean startsWith(String prefix)

آرگومان ورودی prefix همان رشته ای است که می خواهیم بدانیم که متن با آن رشته شروع شده است یا خیر و آرگومان ورودی toffset همان اندیس شروع است. که از آن نقطه می خواهیم بررسی کنیم که رشته از آن قسمت شروع شده است یا خیر. برای مثال و درک بهتر این متد به کد زیر توجه کنید:

import java.io.*;

public class Test{
   public static void main(String args[]){
      String Str = new String("Welcome to Itpro.ir");

      System.out.print("Return Value :" );
      System.out.println(Str.startsWith("Welcome") );

      System.out.print("Return Value :" );
      System.out.println(Str.startsWith("Itpro") );

      System.out.print("Return Value :" );
      System.out.println(Str.startsWith("Itpro", 11) );
   }
}

خروجی کد بالا مانند خط های زیر خواهد بود:

Return Value :true
Return Value :false
Return Value :true

متد subsequence

این متد یک زیر مجموعه از متن را به صورت دنباله ای از کاراکتر های را برمی گرداند. این متد دو پارامتر ورودی دارد که اندیس شروع و اندیس پایان دنباله ای که باید انتخاب شود را مشخص می کند و مقدار بازگشتی آن یک شئ از کلاس CharSequence می باشد. به عبارت دیگر این متد یک زیر رشته از متن را برمی گرداند ولی نوع بازگشتی آن کلاس CharSequence می باشد. برای درک بهتر این متد به کد زیر توجه کنید.

import java.io.*;

public class Test{
   public static void main(String args[]){
      String Str = new String("Welcome to Itpro.ir");

      System.out.print("Return Value :" );
      System.out.println(Str.subSequence(0, 10) );

      System.out.print("Return Value :" );
      System.out.println(Str.subSequence(10, 15) );
   }
}

خروجی کد بالا به شکل زیر خواهد بود

Return Value :Welcome to
Return Value : Itpr

متد substring

وظیفه این متد نیز بازگرداندن یک زیررشته از داخل متن است. این متد دارای دو شکل است در شکل اول یک آرگومان ورودی وجود دارد که اندیس شروع را از کاربر می گیرد و از آن قسمت تا انتهای رشته را برمی گرداند. در شکل دوم این متد هم اندیس شروع و هم اندیس پایان را از کاربر می گیرد. تفاوت این متد با متد subsequence این است که خروجی این متد از نوع String می باشد. کد زیر این متد را نشان می دهد:

import java.io.*;

public class Test{
   public static void main(String args[]){
      String Str = new String("Welcome to Itpro.ir");

      System.out.print("Return Value :" );
      System.out.println(Str.substring(10) );

      System.out.print("Return Value :" );
      System.out.println(Str.substring(10, 15) );
   }
}

نتیجه این کد به شکل زیر خواهد بود

Return Value : Itpro.ir
Return Value : Itpr

متد toCharArray

این متد متن را تبدیل به یک آرایه کاراکتری می کند. از آنجایی که هر متن یک شئ String است و یک مجموعه کاراکتر می باشد. این متد متن را به همان مجموعه کاراکتر به صورت آرایه تبدیل می کند. این متد ورودی نداشته و خروجی آن یک آرایه کاراکتری می باشد. کد زیر نحوه استفاده از این متد را نشان می دهد.

import java.io.*;

public class Test{
   public static void main(String args[]){
      String Str = new String("Welcome to Itpro.ir");

        System.out.print("Return Value :" );
        System.out.println(Str.toCharArray() );
        System.out.println(Str.toCharArray().length);
   }
}

خروجی کد بالا به شکل زیر خواهد بود

Return Value :Welcome to Itpro.ir
19

متد toLowerCase, toUpperCase

این دو متد اعمالی شبیه به هم انجام می دهند. هرکدام از این متدها دارای دو شکل می باشد یکی بدون آرگومان ورودی و یکی با یک آرگومان ورودی دارد. وظیفه متد toLowerCase این است که همه ی کاراکترهای متن را به حروف کوچک انگلیسی تبدیل می کند و وظیفه toUpperCase کاراکترهای متن را به حروف بزرگ تبدیل می کند. وظیفه آرگومان ورودی این است که نوع زبان و نوشتار را مشخص می کند که یک enum به نام Locale است. اگر از آرگومان ورودی استفاده نشود نوشتار و زبان پیش فرض انتخاب خواهد شد که این کار توسط Locale.getDefault انجام می شود. کد زیر مثالی از متدهای گفته شده است.

import java.io.*;

public class Test{
   public static void main(String args[]){
     String Str = new String("Welcome to Itpro.ir");

        System.out.print("lower case is :");
        System.out.println(Str.toLowerCase());
        System.out.print("UPPER CASE IS: ");
        System.out.println(Str.toUpperCase());
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

lower case is :welcome to tosinso.com
UPPER CASE IS: WELCOME TO ITPRO.IR

متد trim

این متد آرگومان ورودی نداشته و خروجی آن یک شئ String است. وظیفه این متد این است که فاصله های خالی را از ابتدا و انتهای متن حذف می کند برای مثال به کد زیر توجه کنید:

import java.io.*;

public class Test{
   public static void main(String args[]){
      String Str = new String("   Welcome to Itpro.ir   ");

      System.out.print("Return Value :" );
      System.out.println(Str.trim() );
   }
}

همان گونه که دیده می شود در متن Str در ابتدا و انتهای آن فاصله خالی وجود دارد ولی خروجی متد trim به گونه ای است که این فواصل از ابتدا و انتها حذف شده اند. خروجی کد به شکل زیر است:

Return Value :Welcome to Itpro.ir

متد valueOf

این متد یک آرگومان ورودی می گیرد که از نوع داده اصلی جاوا است که مقدار وارد شده را تبدیل به رشته می کند و بازمی گرداند. شکل های گوناگون این متد عبارتست از :

static String valueOf(boolean b) 

or 

static String valueOf(char c) 

or

static String valueOf(char[] data) 

or

static String valueOf(char[] data, int offset, int count) 

or

static String valueOf(double d) 

or

static String valueOf(float f) 

or

static String valueOf(int i)

or

static String valueOf(long l)

or

static String valueOf(Object obj)

مثالی از این کد در ادامه آورده شده است.

import java.io.*;

public class Test{
   public static void main(String args[]){
      double d = 102939939.939;
      boolean b = true;
      long l = 1232874;
      char[] arr = {'a', 'b', 'c', 'd', 'e', 'f','g' };

      System.out.println("Return Value : " + String.valueOf(d) );
      System.out.println("Return Value : " + String.valueOf(b) );
      System.out.println("Return Value : " + String.valueOf(l) );
      System.out.println("Return Value : " + String.valueOf(arr) );
   }
}

نتیجه اجرای کد بالا به شکل زیر خواهد بود:

Return Value : 1.02939939939E8
Return Value : true
Return Value : 1232874
Return Value : abcdefg

تا به این قسمت از مطالب معرفی و توضیح متدهای کلاس String به پایان رسید. در ادامه مطالب آموزش جاوا به بررسی سایر ویژگی های این زبان مانند آرایه ها خواهیم پرداخت. Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#مقایسه_رشته_ها_در_جاوا #آموزش_برنامه_نویسی_جاوا #کار_با_رشته_ها_در_جاوا #متدهای_مربوط_به_رشته_ها_در_جاوا #آموزش_جاوا #آموزش_گام_به_گام_جاوا #متد_split_در_جاوا #دوره_آموزشی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
3 نظر
حسن  سهرابیان

<right>

سلام

با توجه به کد زیر ، من یک آرایه از کاراکتر ها را با استفاده از متد valueof به رشته تبدیل کردم ، اما وقتی رشته ای را که با استفاده از متد valueof دریافت کردم با رشته ی دیگر مقایسه می کنم (هر دو رشته مقادیر یکسانی دارند ) مقدار false را برای من نمایش می دهد . در صورتی که مقدار دو متغییر یکی می باشد . دلیل نادرست اجرا شدن این کد چیست ؟

با تشکر

<right>

String name1 = "radar" ; 
char[] charname = {'r','a','d','a','r'};
String charnamenew = String.valueOf(charname);
		
if(name1 == charnamenew){
	System.out.println("true");
}else{
	System.out.println("false");
}

مهدی عادلی فر

سلام سوال خود را داخل سایت و در قسمت سوالات مطرح کنید.

حسن  سهرابیان

سلام ، جواب سوال خودم رو پیدا کردم (لینک) ولی جالب اینجاست که با استفاده از equals()method جواب درست نمایش داده می شود ولی وقتی همین مقایسه را با شرط if انجام می دهم جواب درستی دریافت نمی کنم .

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....