آموزش جاوا - رشته ها
رشتهها که به طور گسترده در برنامهنویسی جاوا استفاده میشوند، دنبالهای از کاراکترها هستند. در زبان برنامهنویسی جاوا، رشتهها به عنوان اشیاء (objects) مورد استفاده قرار میگیرند.
بستر جاوا کلاس String را فراهم میکند تا رشتهها را ایجاد و مدیریت کند.
ایجاد رشتهها
راههای مستقیمترین برای ایجاد یک رشته، نوشتن عبارت زیر است:
String greeting = "Hello world!";
هرگاه کامپایلر با یک رشته حرفی (string literal) در کد شما برخورد کند، یک شیء رشته (String object) با مقدار آن ایجاد میکند، در این مورد "سلام دنیا!".
همانند هر شیء دیگری، میتوانید شیءهای رشته را با استفاده از کلید واژه new و یک سازنده ایجاد کنید. کلاس String 11 سازنده دارد که به شما امکان میدهد مقدار اولیه رشته را با استفاده از منابع مختلفی مانند یک آرایه از کاراکترها ارائه دهید.
مثال
public class StringDemo {
public static void main(String args[]) {
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray);
System.out.println( helloString );
}
}
این کار نتیجه زیر را تولید خواهد کرد:
خروجی (Output)
hello.
توجه − کلاس String تغییرناپذیر (immutable) است، بنابراین یک شیء رشته (String object) پس از ایجاد نمیتواند تغییر کند. اگر نیاز به انجام تعداد زیادی از تغییرات بر روی رشتههای کاراکتری داشته باشید، باید از کلاسهای String Buffer و String Builder استفاده کنید.
طول رشته
روشهای استفاده شده برای دریافت اطلاعات درباره یک شیء به عنوان روشهای دسترسی (accessor methods) شناخته میشوند. یک روش دسترسی که میتوانید با رشتهها استفاده کنید، روش length() است که تعداد کاراکترهای موجود در شیء رشته را برمیگرداند.
برنامه زیر یک مثال از روش length()، روش کلاس String است.
مثال
public class StringDemo {
public static void main(String args[]) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
System.out.println( "String Length is : " + len );
}
}
این به نتیجه زیر خواهد انجامید:
خروجی (Output)
String Length is : 17
پیوستن رشتهها (Concatenating Strings)
کلاس String شامل یک متد برای پیوستن دو رشته است:
string1.concat(string2);
این یک رشته جدید را برمیگرداند که رشته 1 (string1) به آن در انتها رشته 2 (string2) اضافه شده است. همچنین میتوانید از متد concat() با حروف رشته (string literals) نیز استفاده کنید، به شکل زیر:
"My name is ".concat("Zara");
رشتهها بیشتر با عملگر + به هم پیوسته میشوند، به شکل زیر:
"Hello," + " world" + "!"
که به نتیجه زیر منجر میشود:
"Hello, world!"
بیایید به مثال زیر نگاهی بیندازیم:
مثال
public class StringDemo {
public static void main(String args[]) {
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
}
}
این به نتیجه زیر خواهد انجامید:
خروجی (Output)
Dot saw I was Tod
ایجاد رشتههای قالببندی شده (Creating Format Strings)
شما printf() و format() راههایی برای چاپ خروجی با اعداد قالببندی شده دارید. کلاس String یک متد معادل به نام format() دارد که یک شیء رشته (String object) را به جای یک شیء PrintStream برمیگرداند.
استفاده از متد استاتیک format() رشتههای قالببندی شدهای را برای شما ایجاد میکند که میتوانید آن را مجدداً استفاده کنید، برخلاف یک دستور چاپ یکباره. به عنوان مثال، به جای اینکه از −
مثال
System.out.printf("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
شما میتوانید بنویسید:
String fs;
fs = String.format("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
System.out.println(fs);
متدهای رشته (String Methods)
لیستی از متدهای پشتیبانی شده توسط کلاس String آمده است:
شماره | متد و توضیحات |
---|---|
1 | char charAt(int index)
(حرف را در موقعیت مشخص شده بازمیگرداند.) |
2 | int compareTo(Object o)
(این رشته را با شیء دیگری مقایسه میکند.) |
3 | int compareTo(String anotherString)
(دو رشته را به ترتیب لغوی مقایسه میکند.) |
4 | int compareToIgnoreCase(String str)
(دو رشته را به ترتیب لغوی مقایسه میکند و از تفاوتهای بزرگی-کوچکی حروف صرف نظر میکند.) |
5 | String concat(String str)
(رشته مشخص را به انتهای این رشته اضافه میکند.) |
6 | boolean contentEquals(StringBuffer sb)
(اگر این رشته نماینده دقیقاً دنبالهای از حروف همانند StringBuffer مشخص شده باشد، مقدار true برمیگرداند.) |
7 | static String copyValueOf(char[] data)
(یک رشته را که نماینده توالی کاراکترها در آرایه مشخص شده است، برمیگرداند.) |
8 | static String copyValueOf(char[] data, int offset, int count)
(یک رشته را که نماینده توالی کاراکترها در آرایه مشخص شده است، برمیگرداند.) |
9 | boolean endsWith(String suffix)
(بررسی میکند که آیا این رشته با پسوند مشخص شده خاتمه مییابد یا خیر.) |
10 | boolean equals(Object anObject)
(این رشته را با شیء مشخص شده مقایسه میکند.) |
11 | boolean equalsIgnoreCase(String anotherString)
(این رشته را با رشته دیگری مقایسه میکند و از ملاحظه بزرگی-کوچکی حروف صرف نظر میکند.) |
12 | byte[] getBytes()
(این رشته را به توالی بایتها با استفاده از کدگذاری پیشفرض پلتفرم تبدیل میکند و نتیجه را در یک آرایه جدید بایت ذخیره میکند.) |
13 | byte[] getBytes(String charsetName)
(این رشته را به توالی بایتها با استفاده از کدگذاری نامگذاری شده تبدیل میکند و نتیجه را در یک آرایه جدید بایت ذخیره میکند.) |
14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
(کاراکترهای این رشته را به آرایه کاراکتر مقصد کپی میکند.) |
15 | int hashCode()
(کد هش برای این رشته را برمیگرداند.) |
16 | int indexOf(int ch)
(ایندکس اولین وقوع کاراکتر مشخص شده در این رشته را برمیگرداند.) |
17 | int indexOf(int ch, int fromIndex)
(ایندکس اولین وقوع کاراکتر مشخص شده در این رشته را برمیگرداند، با شروع جستجو از ایندکس مشخص شده.) |
18 | int indexOf(String str)
(ایندکس اولین وقوع زیررشته مشخص شده در این رشته را برمیگرداند.) |
19 | int indexOf(String str, int fromIndex)
(ایندکس اولین وقوع زیررشته مشخص شده در این رشته را برمیگرداند، با شروع جستجو از ایندکس مشخص شده.) |
20 | String intern()
(نمایش کانونی را برای شیء رشته برمیگرداند.) |
21 | int lastIndexOf(int ch)
(ایندکس آخرین وقوع کاراکتر مشخص شده در این رشته را برمیگرداند.) |
22 | int lastIndexOf(int ch, int fromIndex)
(ایندکس آخرین وقوع کاراکتر مشخص شده در این رشته را برمیگرداند، با جستجوی معکوس از ایندکس مشخص شده شروع شده.) |
23 | int lastIndexOf(String str)
(ایندکس آخرین وقوع زیررشته مشخص شده در این رشته را برمیگرداند.) |
24 | int lastIndexOf(String str, int fromIndex)
(ایندکس آخرین وقوع زیررشته مشخص شده در این رشته را برمیگرداند، با جستجوی معکوس از ایندکس مشخص شده شروع شده.) |
25 | int length()
(طول این رشته را برمیگرداند.) |
26 | boolean matches(String regex)
(میگوید که آیا این رشته با عبارت منظم داده شده مطابقت دارد یا خیر.) |
27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
(تست میکند که آیا دو قسمت رشته برابر هستند یا خیر.) |
28 | boolean regionMatches(int toffset, String other, int ooffset, int len)
(تست میکند که آیا دو قسمت رشته برابر هستند یا خیر.) |
29 | String replace(char oldChar, char newChar)
(هر کاراکتر در این رشته که با کاراکتر مشخص شده تطابق داشته باشد را با یک کاراکتر جدید جایگزین میکند.) |
30 | String replace(CharSequence target, CharSequence replacement)
(همه وقوعهای زیررشته مشخص شده را با زیررشته جدید جایگزین میکند.) |
31 | String replaceFirst(String regex, String replacement)
تعویض اولین زیررشته از این رشته که با عبارت منظم داده شده مطابقت دارد، با جایگزینی داده شده. |
32 | String[] split(String regex)
جدا کردن این رشته در اطراف تطبیقهای عبارت منظم داده شده. |
33 | String[] split(String regex, int limit)
جدا کردن این رشته در اطراف تطبیقهای عبارت منظم داده شده. |
34 | boolean startsWith(String prefix)
بررسی میکند که آیا این رشته با پیشوند مشخص شده شروع میشود یا خیر. |
35 | boolean startsWith(String prefix, int toffset)
بررسی میکند که آیا این رشته با پیشوند مشخص شده از یک اندیس مشخص شروع میشود یا خیر. |
36 | CharSequence subSequence(int beginIndex, int endIndex)
بازگرداندن یک دنباله کاراکتر جدید که زیردنبالهای از این دنباله است. |
37 | String substring(int beginIndex)
بازگرداندن رشتهای جدید که زیررشتهای از این رشته است. |
38 | String substring(int beginIndex, int endIndex)
بازگرداندن رشتهای جدید که زیررشتهای از این رشته است. |
39 | char[] toCharArray()
تبدیل این رشته به یک آرایه جدید از کاراکترها. |
40 | String toLowerCase()
تبدیل تمامی کاراکترهای این رشته به حروف کوچک با استفاده از قوانین محلی پیشفرض. |
41 | String toLowerCase(Locale locale)
تبدیل تمامی کاراکترهای این رشته به حروف کوچک با استفاده از قوانین محلی داده شده. |
42 | String toString()
خود این شیء (که در حقیقت یک رشته است!) بازگردانده میشود. |
43 | String toUpperCase()
تبدیل تمامی کاراکترهای این رشته به حروف بزرگ با استفاده از قوانین محلی پیشفرض. |
44 | String toUpperCase(Locale locale)
تبدیل تمامی کاراکترهای این رشته به حروف بزرگ با استفاده از قوانین محلی داده شده. |
45 | String trim()
بازگرداندن یک کپی از رشته، با حذف فاصلههای ابتدایی و انتهایی. |
46 | static String valueOf(primitive data type x)
بازگرداندن نمایش رشتهای از آرگومان نوع داده اولیه رد شده. |