با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن. و کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. رشته ها مجموعه ای از کاراکترها می باشند که معمولا یک کلمه یا جمله را می سازند. همانطور که در بخش های قبل مرور کردیم جاوا برای مدیریت و دستکاری داده های عددی و کاراکتر کلاس ها متدهایی را ارائه کرده است. برای رشته ها نیز به عنوان یک نوع داده ی پرکاربرد، کلاس ها و متدهایی ( متدهای رشته در جاوا ) برای دستکاری و مدیریت آن ها توسط جاوا ارائه شده است. حالا برای آشنایی با کلاس های رشته در جاوا در ادامه ی مباحث این بخش با ما همراه باشید.
در ادامه ی مباحث آموزش آشنایی با کلاس های رشته در جاوا شما را با چگونگی ایجاد و مدیریت رشته ها و همچنین متدهای مربوطه آشنا خواهیم کرد.
روش مستقیم ایجاد یک داده ی رشته ای در جاوا بصورت زیر است:
1 | String greeting = "Hello world!"; |
هر زمان که رشته ای را در کد خود قرار دهید کامپایلر یک شیء String با مقدار رشته ایجاد می کند.
کلاس String دارای ۱۱ ساختار برای ایجاد رشته هاست.
این ساختارها به شما امکان می دهد که مقدار اولیه ی رشته را با استفاده از منابع مختلف مانند آرایه ها ایجاد کنید.
مثال:
1 2 3 4 5 6 7 8 | 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 ); } } |
خروجی کد فوق در جاوا بصورت زیر خواهد بود:
1 | hello. |
نکته:کلاس String غیر قابل تغییر است، به طوری که پس از ایجاد یک شیء رشته قابل تغییر نیست.
اگر به تغییر در رشته نیاز داشته باشید باید از کلاس های String Buffer و String Builder استفاده کنید.
متدهای متعددی برای بدست آوردن اطلاعات مربوط به رشته ها ارائه شده است.
متد ()length طول یک رشته را باز می گرداند.
مثال:
1 2 3 4 5 6 7 8 | 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 ); } } |
نتیجه ی اجرای کد فوق در جاوا بصورت زیر است:
1 | String Length is : 17 |
کلاس String شامل یک متد برای ترکیب دو رشته است :
1 | string1.concat(string2); |
در کد فوق رشته ی string2 به انتهای string1 اضافه شده و یک رشته ی جدید می سازد.
همچنین می توانید از متد ()concat بصورت زیر استفاده کنید:
1 | "My name is ".concat("Zara"); |
در ساده ترین حالت می توانید با استفاده از عملگر + دو رشته را با هم ترکیب کنید:
1 | "Hello," + " world" + "!" |
نتیجه ی اجرای کد فوق در جاوا بصورت زیر خواهد بود:
1 | "Hello, world!" |
مثال:
1 2 3 4 5 6 7 | public class StringDemo { public static void main(String args[]) { String string1 = "saw I was "; System.out.println("Dot " + string1 + "Tod"); } } |
نتیجه ی اجرای کد فوق در جاوا بصورت زیر است:
1 | Dot saw I was Tod |
برای چاپ رشته ها در یک قالب خاص در جاوا می توانید از متدهای ()printf و ()format استفاده کنید.
با استفاده از متد ()static format می توانید یک رشته ی فرمت شده را که قابل استفاده ی مجدد باشد،ایجاد کنید.
مثال:
1 2 3 4 | 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); |
شما می توانید بصورت زیر بنویسید:
1 2 3 4 5 6 | 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); |
جدول زیر شامل لیست متدهای دستکاری رشته در جاوا است:
ردیف | متد و توضیحات آن |
---|---|
متدهای مقایسه ای و رمزنگاری | |
۱ | char charAt(int index) کاراکترها را در قالب index برمی گرداند. |
۲ | int compareTo(Object o) نوع رشته را به آبجت تبدیل می کند. |
۳ | int compareTo(String anotherString) دو رشته را از نظر لغوی مقایسه می کند. |
۴ | int compareToIgnoreCase(String str) دو رشته را از نظر لغوی مقایسه می کند، تفاوت های مورد توجه را نادیده می گیرد. |
۵ | String concat(String str) رشته مشخص شده را به انتهای رشته ی جاری متصل می کند. |
۶ | boolean contentEquals(StringBuffer sb) اگر رشته به عنوان StringBuffer باشد true vh fv
|
۷ | static String copyValueOf(char[] data) رشته را بصورت توالی کاراکتر ها باز می گرداند.
|
۸ | static String copyValueOf(char[] data, int offset, int count) رشته را بصورت توالی کاراکتر ها باز می گرداند. |
۹ | boolean endsWith(String suffix) تست می کند که رشته با پسوند مشخصی پایان یافته یا خیر. |
۱۰ | boolean equals(Object anObject) رشته جاری را به آبجکت مشخص شده مقایسه می کند. |
۱۱ | boolean equalsIgnoreCase(String anotherString) رشته ی جاری را با سایر رشته ها مقایسه می کند. |
۱۲ | byte getBytes() رشته جاری را به دنباله ای از بایت ها رمزنگاری کرده و نتیجه را در یک آرایه ذخیره می کند. |
۱۳ | byte[] getBytes(String charsetName) این رشته را به یک دنباله از بایت با استفاده از نام charset نامگذاری می کند. |
۱۴ | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) کاراکترها را از این رشته به آرایه رشته مقصد کپی می کند. |
۱۵ | int hashCode() یک کد هش را برای این رشته باز می گرداند |
متدهای جستجو در رشته | |
۱۶ | int indexOf(int ch) index اولین کاراکتر مشخص شده را باز می گرداند.
|
۱۷ | int indexOf(int ch, int fromIndex) index اولین کاراکتر مشخص شده را باز می گرداند. |
۱۸ | int indexOf(String str) index زیر رشته ی مشخص شده را باز می گرداند. |
۱۹ | int indexOf(String str, int fromIndex) index کاراکتر مشخص شده را در رشته ی مربوطه جستجو می کند. |
۲۰ | String intern() |
۲۱ | int lastIndexOf(int ch) آخرین index کاراکتر مشخص شده را برمی گرداند. |
۲۲ | int lastIndexOf(int ch, int fromIndex) آخرین index کاراکتر مشخص شده را در یک متغیر int برمی گرداند.. |
۲۳ | int lastIndexOf(String str) آخرین index یک زیر رشته را برمی گرداند. |
۲۴ | int lastIndexOf(String str, int fromIndex) آخرین index رشته مشخص شده را از مکان مشخص شده در رشته باز می گرداند. |
۲۵ | int length() طول رشته ی جاری را بر می گرداند. |
۲۶ | boolean matches(String regex) بررسی می کند که آیا رشته جاری با قالب دریافتی مطابقت دارد یاد خیر.
|
متدهای موقعیت یابی رشته | |
۲۷ | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) بررسی می کند که آیا دو موقعیت رشته ای باهم برابرند یا خیر. |
۲۸ | boolean regionMatches(int toffset, String other, int ooffset, int len) بررسی می کند که آیا دو موقعیت رشته ای باهم برابرند یا خیر.
|
سایر متدهای رشته ای | |
۲۹ | String replace(char oldChar, char newChar) کاراکتر مشخص شده را در رشته جاری پیدا کرده و با کاراکتر جدید تعویض می کند. |
۳۰ | String replaceAll(String regex, String replacement تمام زیر رشته هایی را که با قالب دریافتی مطابقت دارند را جایگزین می کند. |
۳۱ | String replaceFirst(String regex, String replacement) اولین زیر رشته های را که با قالب دریافتی مطابقت دارند را جایگزین می کند. |
۳۲ | String[] split(String regex) رشته جاری را در قالب دریافتی تقسیم می کند. |
۳۳ | String[] split(String regex, int limit) رشته جاری را در قالب دریافتی تقسیم می کند. |
۳۴ | boolean startsWith(String prefix) بررسی می کند که آیا رشته ی جاری با پیشوند دریافتی شروع شده یا خیر. |
۳۵ | boolean startsWith(String prefix, int toffset) بررسی می کند که آیا رشته ی جاری با پیشوند دریافتی شروع شده یا خیر. |
۳۶ | CharSequence subSequence(int beginIndex, int endIndex) کاراکترهای زیر توالی را در بازه ی مشخص شده پیدا می کند. |
۳۷ | String substring(int beginIndex) زیر رشته ای را از مکان مشخص شده در رشته ی جاری جستجو می کند. |
۳۸ | String substring(int beginIndex, int endIndex) زیر رشته ای را از مکان مشخص شده در رشته ی جاری جستجو می کند. |
۳۹ | char[] toCharArray() رشته ی جاری را به آرایه ای از کاراکتر ها تبدیل می کند. |
۴۰ | String toLowerCase() حروف بزرگ رشته را به حروف کوچک تبدیل می کند. |
۴۱ | String toLowerCase(Locale locale) حروف بزرگ رشته را به حروف کوچک تبدیل می کند. |
۴۲ | String toString() آبجکت را به رشته تبدیل می کند. |
۴۳ | String toUpperCase() تمام حروف رشته جاری را به حروف بزرگ تبدیل می کند. |
۴۴ | String toUpperCase(Locale locale) تمام حروف رشته جاری را به حروف بزرگ تبدیل می کند. |
۴۵ | String trim() فضای اضافی داخل رشته را حذف می کند. |
۴۶ | static String valueOf(primitive data type x) . |
رشته همانند داده های نوع عددی و کاراکتری به عنوان یکی ازپرکاربردترین نوع داده ها در جاوا و سایر زبان های برنامه نویسی در جاوا دارای کلاس و متدهای گسترده ای برای دستکاری و مدیریت رشته می شوند. از این رو مباحث این بخش را به آشنایی با کلاس های رشته در جاوا اختصاص دادیم.