CodeGym /وبلاگ جاوا /Random-FA /الحاق رشته ها در جاوا
John Squirrels
مرحله
San Francisco

الحاق رشته ها در جاوا

در گروه منتشر شد
الحاق رشته جاوا عملیاتی برای اتصال دو یا چند رشته و برگرداندن یک رشته جدید است. همچنین از عملیات الحاق می توان برای ریختن انواع به رشته ها استفاده کرد. شما می توانید رشته ها را در جاوا به دو روش مختلف به هم متصل کنید.

متد concat().

متد Concat رشته مشخص شده را در انتهای رشته داده شده اضافه می کند و سپس برمی گرداند و سپس یک رشته جدید تشکیل شده را برمی گرداند. مطمئناً می توانیم از متد concat() برای اتصال سه یا چند رشته استفاده کنیم.

امضای متد ()concat

public String concat(String str)
این روش رشته رشته را در انتهای رشته فعلی به هم متصل می کند. مثلا:
String s1 =Hello;
s1.concat("World")
یک رشته جدید "Hello World" را برمی گرداند.

مثال روش Concat().

بیایید دو رشته را پس از مقدار دهی اولیه آنها به هم متصل کنیم، سپس رشته های بیشتری را با هم ترکیب کنیم. و یک مثال جالب دیگر: ما می خواهیم متدی ایجاد کنیم که پیام های مختلفی را بر اساس آرگومان برگرداند.
public class ConcatTest {

    public static void main(String[] args) {
        //String concat with concat() method
        String string1 = "I learn ";
        String string2 = "concatenation in Java";
        //here we use concat() method to join the two strings above
        String result = string1.concat(string2);
        System.out.println(result);
        //concat() method to join 4 strings
        String myWebSite = "Code".concat("Gym").concat(".cc").concat("/quest");
        System.out.println(myWebSite); // here we've got  "CodeGym.cc/quest"

        System.out.println(myMessage(true));
        System.out.println(myMessage(false));
    }

    private static String myMessage(boolean b) {   //concat() method with selection statement
        return "I have".concat(b ? " " : "n't ").concat("got it");
    }

}
خروجی این است:
من الحاق را در Java CodeGym.cc/quest یاد می‌گیرم
مهم است بدانید که متد concat() رشته را تغییر نمی‌دهد، بلکه یک رشته جدید را در نتیجه ادغام فعلی و یکی که به عنوان پارامتر ارسال می‌شود ایجاد می‌کند. بنابراین این روش یک شی String جدید را برمی گرداند ، به همین دلیل است که می توانید زنجیره های طولانی از String concat ایجاد کنید.

الحاق با استفاده از عملگرهای اضافه بار "+" و "+="

می توانید از این دو عملگر مانند اعداد استفاده کنید. آنها درست مانند concat() کار می کنند . بیایید رشته "Code" و رشته "Gym" را به هم متصل کنیم.
public class StringConcat {
   public static void main(String[] args) {

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
معمولا جاوا اجازه نمی دهد عملیات اضافه بار برای کلاس های کاربر انجام شود، اما این دو عملگر به صورت بارگذاری شده کار می کنند. ممکن است فکر کنید که در داخل اپراتور + concat() پنهان شده است ، اما در واقع مکانیسم دیگری در اینجا استفاده می شود. اگر به بایت کد برنامه جاوا نگاه کنیم، خواهیم دید که StringBuilder ایجاد شده و از متد ()append آن استفاده شده است. کامپایلر جاوا عملگر "+" را می بیند و متوجه می شود که عملوندها رشته هستند، نه انواع اولیه. بنابراین مانند concat کار می کند.
public class StringTest2 {

   public static void main(String[] args) {

       String hello = "hello";
       String world = " world!";

       String helloworld = (new StringBuilder().append(hello).append(world).toString());
       System.out.println(helloworld);
       //this is the same as:
       String result = hello + world;
   }
}

Concat(0) یا +؟

اگر فقط یک بار نیاز به ادغام رشته ها دارید، از متد ()concat استفاده کنید . برای همه موارد دیگر، بهتر است از اپراتور + یا Stringbuffer / StringBuilder استفاده کنید . همچنین برای تبدیل انواع از عملگر + استفاده می شود. اگر یکی از عملوندها به عنوان مثال عدد و دومی یک رشته باشد، در خروجی یک رشته خواهیم داشت. مثال:
public class StringConcat {
   public static void main(String[] args) {
       int myInt = 5;
       String myString = " days";

       System.out.println(myInt + myString);
       boolean b = (myInt + myString) instanceof String;
       System.out.println(b);
   }
}
ما از instanceof برای بررسی اینکه آیا (myInt + myString) یک رشته است یا خیر استفاده کردیم. این هم خروجی این برنامه:
5 روز درسته
همچنین توجه داشته باشید که اگر یکی از رشته ها تهی باشد، عملگر + و ()concat متفاوت عمل می کنند. اگر یکی از عملوندها هنگام استفاده از عملگر + یا += فقط یک رشته باشد، همانطور که قبلاً گفتیم، تبدیل نوع رخ می دهد. همین امر در مورد null نیز صدق می کند. ما فقط یک رشته جدید دریافت می کنیم:
public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
خروجی این است:
کتاب باطل درست است
اگر متد concat() را برای همان عملیات اعمال کنیم ، یک NullPointerException دریافت خواهیم کرد .
public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString.concat(null));

   }
}
خروجی این است:
استثنا در رشته "main" java.lang.NullPointerException در java.base/java.lang.String.concat(String.java:1972) در StringConcat.main(StringConcat.java:6)
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION