کار با رشته ها در جاوا

ناصر نادری | 1393/09/30


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

در اصطلاح به دنباله ای از کاراکتر ها رشته گفته میشه . یعنی اگر یک آرایه آز نوع char داشته باشیم در واقع یک رشته  داریم . رشته ها در جاوا از نوع object یا شی هستند . یعنی جاوا یک کلاس به نام String داره که میتونیم برای تعریف رشته ها از اون استفاده کنیم . ساده ترین نوع تعریف یک رشته بشکل زیر:


String str="I'm Learning JAVA";

همونطور که اشاره شد رشته رو از نوع شی تعریف میکنیم . پس برای تعریف یک رشته میتونیم مثل تعریف سایر اشیا از کلاسهای مختلف , از کلمه کلیدی new برای اختصاص حافظه روی heap استفاده کنیم . از اونجا که تمام کلاسهای جاوا حداقل یک سازنده کلاس دارند کلای String هم یک سازنده داره که اگه مقداری بعنوان پارامتر بهش بدید اون شی رو با اون مقدار پر میکنه :


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 );
    }
}

 

نتیجه اجرای کد بالا :


hello.

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

وقتی رشته ای رو از نوع کلاس String تعریف میکنیم برای کار روی اون رشته امکانات زیادی برامون فراهم میشه. یکی از این امکانات  محاسبه طول رشته توسط متد length هست . برای اینکه نحوه استفاده از این نوع متدها رو یاد بگیریم کد زیر رو یه  ببینید :


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 );
    }
}

 

نتیجه اجرای کد بالا :


String Length is : 17

 

الحاق رشته ها

میتونیم دو یا چند رشته رو به روشهای ریادی به هم متصل کنیم یکی از این روشها از طریق متد concta  از کلای String هست :


string1.concat(string2);

یا :


"My Name is " . concat("Naser");

روش دیگه ای که میتونیم استفاده کنیم الحاق توسط عملگر + هست :


"Hello " + "World " ;

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


public class StringDemo {

    public static void main(String args[]) {
        String string1 = "saw I was ";
        System.out.println("Dot " + string1 + 
"Tod");
    }
}

نتیجه اجرای کد بالا :


Dot saw I was Tod

ساخت Format String :

رشته های فرمت داده شده میتونیم با System.out.printf و متد استاتیک format از کلاس String رشته هایی فرمت بندی شده به شکل زیر در خروجی تولید یا چاپ  کنیم :


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

 
char charAt(int index) کاراکتر موجود در مکان ایندکس از داخل رشته را برمیگرداند.
int compareTo(Object o) این رشته را با یک شی دیگر مقایسه میکند.
int compareTo(String anotherString) مقایسه دو رشته از نظر ساختار.
int compareToIgnoreCase(String str) مقایسه دو رشته بدون در نظر گرفتن بزرگی یا کوچکی حروف.
String concat(String str) الحاق دورشته.
boolean contentEquals(StringBuffer sb) مقدار درستی را زمانی برمیگرداند که رشته بافر پارامتری ترتیب یکسان کاراکتری را بارشته ما داشته باشد .
static String copyValueOf(char[] data) رشته ای را که نشان دهنده ترتیب کاراکتری موجو در آرایه ما میباشد را برمیگرداند .
boolean endsWith(String suffix) برسی اینکه آیا رشته ما با رشته پارامتر پایان یافته است یا نه .
boolean equalsIgnoreCase(String anotherString) مقایسه برابری دورشته بدون در نظر گرفتن حساسیت به اندازه حروف.
byte getBytes() تبدیل رشته ما به یک ترتیب از بایت ها که با فرمت بستری که روی آن کار میکنیم سازگار باشد.
byte[] getBytes(String charsetName تبدیل رشته به ارایه ای از بایتها با فرمتی که بصورت پارامتر به تابع داده شده است.
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) کپی کاراکتر ها از این رشته به یک آرایه کاراکتر ی.
int hashCode() بازگرداندن کد هش شده رشته فعلی.
int indexOf(int ch) بازگرداندن اولین مکانی یا ایندکس در رشته ما که با کاراکتر پارامتر برابر است.
int indexOf(int ch, int fromIndex) باز گرداندن اولین مکان یا ایندکس  بعد از ایندکس داده شده در پارامتر دوم در رشته ما که با کاراکتر پارامتر اول برابر باشد
int indexOf(String str) .بازگرداندن اولین مکانی یا ایندکس در رشته ما که با رشته پارامتر برابر است
int indexOf(String str, int fromIndex) باز گرداندن اولین مکان یا ایندکس  بعد از ایندکس داده شده در پارامتر دوم در رشته ما که با رشته پارامتر اول برابر باشد.
String intern() چاپ رشته ما بصورت فرمت استاندارد.
int lastIndexOf(int ch) بازگرداندن آخرین  مکانی یا ایندکس در رشته ما که با کاراکتر پارامتر برابر است.
int lastIndexOf(int ch, int fromIndex) باز گرداندن آخرین مکان یا ایندکس  بعد از ایندکس داده شده در پارامتر دوم در رشته ما که با کاراکتر پارامتر اول برابر باشد.
int lastIndexOf(String str) بازگرداندن آخرین مکان یا ایندکس در رشته ما که با رشته پارامتر برابر است.
int lastIndexOf(String str, int fromIndex) باز گرداندن آخرین مکان یا ایندکس  بعد از ایندکس داده شده در پارامتر دوم در رشته ما که با رشته پارامتر اول برابر باشد.
int length() طول رشته را برمیگرداند.
boolean matches(String regex) بررسی رسته ما بایک فرمت خاصی از رشته ها مانند فرمت کلی ایمیل.
boolean regionMatches(boolean ignoreCase, 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) تقسیم رشته بضکل یک ارایه رشته ای که توسط فرمت داده شده در پارامتر ازهم جدا شده اند.
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 toUpperCase() تبدیل حروف رشته ما به حروف بزرگ.
String toUpperCase(Locale locale) تبدیل حروف رشته ما به حروف بزرگ طبق فرمت تعیین شده در پارامتر داده شده.
String trim() برداشتن فضاهای خالی از اول و آخر رشته ما.
static String valueOf(primitive data type x) بازگرداندن نمایش رشته ای پارامتر داده شده .

 

تا جلسه بعد در پناه عالم مطلق...


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید