CodeGym /Blog Java /Ngẫu nhiên /Nối chuỗi trong Java

Nối chuỗi trong Java

Xuất bản trong nhóm
Nối chuỗi Java là một thao tác để nối hai hoặc nhiều chuỗi và trả về một chuỗi mới. Ngoài ra, thao tác nối có thể được sử dụng để truyền các loại thành chuỗi. Bạn có thể nối các chuỗi trong Java theo hai cách khác nhau.

phương thức concat()

Phương thức Concat() nối thêm chuỗi đã chỉ định vào cuối chuỗi đã cho, sau đó trả về và sau đó trả về một chuỗi mới được hình thành. Chắc chắn chúng ta có thể sử dụng phương thức concat() để nối ba chuỗi trở lên.

Chữ ký của phương thức concat()


public String concat(String str)
Phương thức nối chuỗi str ở cuối chuỗi hiện tại. Ví dụ:

String s1 = “Hello ”; 
s1.concat("World")
trả về một chuỗi mới “Xin chào thế giới”.

Ví dụ về phương thức Concat()

Hãy nối hai chuỗi sau khi khởi tạo, sau đó nối nhiều chuỗi hơn. Và một ví dụ thú vị nữa: chúng ta sẽ tạo một phương thức trả về các thông báo khác nhau tùy theo đối số.

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

}
Đầu ra là:
Tôi học phép nối trong Java CodeGym.cc/quest Tôi hiểu rồi Tôi chưa hiểu
Điều quan trọng cần biết là phương thức concat() không thay đổi chuỗi, nhưng tạo một chuỗi mới do hợp nhất chuỗi hiện tại và chuỗi được truyền dưới dạng tham số. Vì vậy, phương thức trả về một đối tượng Chuỗi mới , đó là lý do tại sao bạn có thể tạo các chuỗi concat Chuỗi dài như vậy.

Nối bằng cách sử dụng các toán tử quá tải "+" và "+="

Bạn có thể sử dụng hai toán tử này giống như với các số. Chúng hoạt động giống như concat() . Hãy nối chuỗi “Code” và chuỗi “Gym”.

public class StringConcat {
   public static void main(String[] args) {

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Thông thường Java không cho phép các thao tác nạp chồng đối với các lớp người dùng, nhưng hai toán tử này hoạt động như là nạp chồng. Bạn có thể nghĩ rằng bên trong + toán tử đang ẩn concat() , nhưng trên thực tế, một cơ chế khác được sử dụng ở đây. Nếu chúng ta nhìn vào mã byte của chương trình Java, chúng ta sẽ thấy rằng StringBuilder đã được tạo và phương thức append() của nó được sử dụng. Trình biên dịch Java nhìn thấy toán tử “+” và nhận ra rằng toán hạng là các chuỗi, không phải kiểu nguyên thủy. Vì vậy, nó hoạt động như 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) hoặc +?

Nếu bạn chỉ cần hợp nhất các chuỗi một lần, hãy sử dụng phương thức concat() . Đối với tất cả các trường hợp khác, tốt hơn là sử dụng toán tử + hoặc Stringbuffer / StringBuilder . Ngoài ra, toán tử + được sử dụng để chuyển đổi các loại. Nếu một trong các toán hạng bằng nhau, chẳng hạn như số và toán hạng thứ hai là một chuỗi, thì ở lối ra, chúng ta sẽ nhận được một chuỗi. Ví dụ:

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);
   }
}
Chúng tôi đã sử dụng instanceof để kiểm tra xem (myInt + myString) có phải là Chuỗi hay không. Đây là đầu ra của chương trình này:
đúng 5 ngày
Cũng lưu ý rằng toán tử +concat() hoạt động khác nếu một trong các chuỗi là null. Nếu một trong các toán hạng khi sử dụng toán tử + hoặc += chỉ là một - một chuỗi, thì như chúng ta đã nói, chuyển đổi kiểu sẽ xảy ra. Điều tương tự cũng áp dụng cho null. Chúng tôi sẽ nhận được một chuỗi mới:

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
Đầu ra là:
cuốn sách vô giá trị
Nếu chúng ta áp dụng phương thức concat() cho cùng một thao tác, thì chúng ta sẽ nhận được một NullPulumException .

public class StringConcat {
   public static void main(String[] args) {

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

   }
}
Đầu ra là:
Ngoại lệ trong luồng "chính" java.lang.NullPulumException tại java.base/java.lang.String.concat(String.java:1972) tại StringConcat.main(StringConcat.java:6)
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION