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

و

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

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

با سلام به همه دوستان و همراهان Itpro. در مطلب قبلی در مورد رشته ها و کلاس String در جاوا صحبت کردیم. در این مطلب به ادامه بحث قبلی خواهیم پرداخت و متدهای موجود در کلاس String را معرفی خواهیم کرد.

متد copyValueOf

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

public class Test {

   public static void main(String args[]) {
      char[] Str1 = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
      String Str2 = "";

      Str2 = Str2.copyValueOf( Str1 );
      System.out.println("Returned String: " + Str2);

      Str2 = Str2.copyValueOf( Str1, 2, 6 );
      System.out.println("Returned String: " + Str2);
   }
}

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

Returned String: hello world
Returned String: llo wo

همان گونه که دیده می شوددر قسمت اول کد ما کل آرایه را به رشته تبدیل کردیم ولی در بخش دوم گفته ایم که از اندیس شماره 2 به اندازه 6 خانه انتخاب کن که خروجی را مشاهده می کنید.

متد endsWith

این متد یک آرگومان ورودی دارد که مشخص می کند که انتهای رشته با آرگومان ورودی یکی است یا خیر. اگر قسمت انتهایی رشته با آرگومان ورودی یکی بود پس مقدار true و در غیر این صورت مقدار false برمی گرداند. اگر آرگومان ورودی رشته خالی باشد یا با رشته صدا زننده هم برابر باشد این متد جواب true خواهد داد. کد زیر مثالی از این متد را نمایش می دهد.

public class Test{

   public static void main(String args[]){
      String Str = new String("This is really not immutable!!");
      boolean retVal;

      retVal = Str.endsWith( "immutable!!" );
      System.out.println("Returned Value = " + retVal );

      retVal = Str.endsWith( "immu" );
      System.out.println("Returned Value = " + retVal );
   }
}

اگر کد بالا را اجرا کنیم نتیجه به صورت زیر خواهد بود:

Returned Value = true
Returned Value = false

متد equals

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

public class Test {

   public static void main(String args[]) {
      String Str1 = new String("This is really not immutable!!");
      String Str2 = Str1;
      String Str3 = new String("This is really not immutable!!");
      boolean retVal;

      retVal = Str1.equals( Str2 );
      System.out.println("Returned Value = " + retVal );

      retVal = Str1.equals( Str3 );
      System.out.println("Returned Value = " + retVal );
   }
}

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

Returned Value = true
Returned Value = true

متد مشابه دیگری نیز وجود دارد که equalsIgnoreCase نام دارد. این متد نیز عمل مقایسه را انجام داده و مشخص می کند که مقدار آرگومان ورودی با رشته مورد نظر برابر است یا خیر اما دو تفاوت بین این متد و متد equals وجود دارد یکی این که آرگومان ورودی باید از نوع String باشد و نمی تواند هر شئی باشد و دوم این که این متد بین حروف و بزرگ و کوچک تفاوت قایل نمی شود. مثالی از این متد در کد زیر آورده شده است.

public class Test {

   public static void main(String args[]) {
      String Str1 = new String("This is really not immutable!!");
      String Str2 = Str1;
      String Str3 = new String("This is really not immutable!!");
      String Str4 = new String("This IS REALLY NOT IMMUTABLE!!");
      boolean retVal;

      retVal = Str1.equals( Str2 );
      System.out.println("Returned Value = " + retVal );

      retVal = Str1.equals( Str3 );
      System.out.println("Returned Value = " + retVal );

      retVal = Str1.equalsIgnoreCase( Str4 );
      System.out.println("Returned Value = " + retVal );
   }
}

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

Returned Value = true
Returned Value = true
Returned Value = true

متد getBytes

این متد دو شکل گوناگون دارد. شکل اول از این متد به آرگومانی ندارد و شکل دوم آن یک آرگومان ورودی دارد. کار این متد این است که رشته را به یک سری بایت ها کدگذاری می کند. خروجی این متد آرایه ای از بایت ها می باشد. برای مثال به کد زیر توجه کنید:

import java.io.*;

public class Test{

   public static void main(String args[]){
      String Str1 = new String("Welcome to Tutorialspoint.com");

      try{
         byte[] Str2 = Str1.getBytes();
         System.out.println("Returned  Value " + Str2 );

         Str2 = Str1.getBytes( "UTF-8" );
         System.out.println("Returned  Value " + Str2 );

         Str2 = Str1.getBytes( "ISO-8859-1" );
         System.out.println("Returned  Value " + Str2 );
      }catch( UnsupportedEncodingException e){
         System.out.println("Unsupported character set");
      }
   }
}

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

Returned  Value [B@192d342
Returned  Value [B@15ff48b
Returned  Value [B@1b90b39

متد getChars

این متد کاراکتر های رشته را به داخل یک آرایه از کاراکتر ها میریزد. به شکلی می توان گفت که کاراکترهای رشته را جدا می کند. این متد هیچ مقدار بازگشتی ندارد. ولی آرایه ی کاراکترهایی که باید پر شود را به شکل آرگومان ورودی باید به آن داد. آرگومان های ورودی این متد به ترتیب به شکل زیر می باشند:

  1. srcBegin: اندیس اولین کاراکتر از رشته مورد نظر که انتخاب کاراکتر ها از آن اندیس شروع می شوند. این آرگومان عددی است.
  2. srcEnd اندیس آخرین کاراکتر از رشته که انتخاب کاراکترها تا آن اندیس ادامه می یابد و در آن اندیس ختم می شود این آرگومان عددی است.
  3. dst نام آرایه مقصد را که کاراکتر ها در آن ریخته می شود را در این قسمت قرار می دهیم.
  4. dstBegin این آرگومان مشخص می کند که از کدام اندیس ارایه مقصد شروع به ریختن کاراکتر ها کنیم.

برای مثالی از این متد به کد زیر توجه کنید:

import java.io.*;

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

      try{
         Str1.getChars(2, 9, Str2, 0);
         System.out.print("Copied Value = " );
         System.out.println(Str2 );

      }catch( Exception ex){
         System.out.println("Raised exception...");
      }
   }
}

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

Copied Value = lcome t

متد hashCode

این متد یک کد به ازای برای رشته تولید می کند که به آن hashCode گفته می شود. این hashCode برای اشیا Stringی به شکل زیر محاسبه می شود:

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

در فرمول بالا s[i] کاراکترهای رشته می باشد، n طول رشته می باشد و ^ علامت توان می باشد. مقدار hashCode برای رشته خالی صفر است. این متد هیچ آرگومان ورودی ندارد. خروجی این متد یک عدد int می باشد. مثالی از این متد در کد زیر آورده شده است:

import java.io.*;

public class Test{
   public static void main(String args[]){
      String Str = new String("Welcome to Tutorialspoint.com");
      System.out.println("Hashcode for Str :" + Str.hashCode() );
   }
}

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

Hashcode for Str :1186874997

متد indexOf

این متد دارای 4 شکل مختلف می باشد. وظیفه این متد جستجو در داخل رشته و پیدا کردن محل آن است. خروجی این متد یک عدد int می باشد که محل شروع رشته یا کاراکتر می باشد. این متد می تواند یک کاراکتر یا یک رشته را در داخل رشته اصلی جستجو کند. اگر کاراکتر یا رشته مورد جستجو در رشته اصلی وجود نداشته باشد مقدار -1 بازگشت داده می شود. اشکال مختلف این متد عبارتست از:

  1. indexOf(int ch) یک کاراکتر را جستجو کرده و اندیس آن را برمی گرداند.
  2. indexOf(int ch, int fromIndex) یک کاراکتر را از اندیس مشخص شده جستجو می کند.
  3. indexOf(String str) یک رشته را در داخل رشته اصلی جستجو می کند و سپس نقطه شروع آن را برمی گرداند.
  4. indexOf(String str, int fromIndex) یک رشته را در داخل رشته اصلی از اندیس مشخص شده جستجو می کند و محل آن را برمی گرداند.

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

import java.io.*;

public class Test {

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

      System.out.print("Found Index :" );
      System.out.println(Str.indexOf( 'o' ));
      System.out.print("Found Index :" );
      System.out.println(Str.indexOf( 'o', 5 ));
      System.out.print("Found Index :" );
      System.out.println( Str.indexOf( SubStr1 ));
      System.out.print("Found Index :" );
      System.out.println( Str.indexOf( SubStr1, 15 ));
      System.out.print("Found Index :" );
      System.out.println(Str.indexOf( SubStr2 ));
   }
}

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

Found Index :4
Found Index :9
Found Index :11
Found Index :-1
Found Index :-1

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

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

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

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

#مقایسه_رشته_ها_در_جاوا #جستجوی_رشته_ها_در_جاوا #آموزش_برنامه_نویسی_جاوا #فرمول_hashcode_در_جاوا #کار_با_رشته_ها_در_جاوا #متدهای_مربوط_به_رشته_ها_در_جاوا #آموزش_جاوا #کلاس_string_در_جاوا #دوره_آموزشی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
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
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

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

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