Cắt Chuỗi Tĩnh Và động Trong Java - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Split method
- 1.1 Cú pháp
- 1.2 Parameter
- 2 Cắt chuỗi tĩnh trong java
- 3 Cắt chuỗi động trong java
- 4 PatternSyntaxException trong String
Trong quá trình thao tác với String trong java đôi lúc chúng ta cần cắt chuỗi theo một ký tự cụ thể như dấu gạch ngang “-” hoặc theo một khuôn mẫu nào đó. String hỗ trợ cho chúng ta cả hai phương thức trên. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về các cách cắt chuỗi trong java nhé.
Split method
Split method được sử dụng để cắt chuỗi trong java và trả về một mảng các String sau khi được cắt.
Cú pháp
public String split(String regex) public String split(String regex, int limit)Parameter
regex: Biểu thức regular expression để cắt chuỗi.
limit: Kích thước tối đã của mảng trả về.
Cắt chuỗi tĩnh trong java
Như mình đề cập về hàm split() ở trên thì nó luôn luôn nhận vào một chuỗi regex. Vậy làm sao để cắt tĩnh theo một ký tự cố định đây?
Bí ẩn nằm sau bên trong split() nó sẽ tiền xử lý để kiểm tra xem tham số truyền vào có đúng là chuỗi regex hay không? Nếu không thì nội tại bên trong nó sẽ gọi hàm substring() và cắt dựa vào chuỗi được truyền vào.
Ví dụ: Cho chuỗi share-programming-net, cắt chuỗi theo ký tự “-“
class Main { public static void main(String args[]) { String s = "share-programming-net"; String[] splits = s.split("-"); for (String item : splits) System.out.println(item); } }Output
shareprogrammingnet
Áp dụng limit
class Main { public static void main(String args[]) { String s = "share-programming-net"; String[] splits = s.split("-", 2); for (String item : splits) System.out.println(item); } }Output:
shareprogramming-net
Như các bạn thấy mình giới hạn kích thước của mảng trả về là 2 nên nó chỉ cắt được 1 lần là không còn chỗ chứa nữa.
Note: Có thể xem limit – 1 là số lần được cắt chuỗi
Cắt chuỗi động trong java
Để cắt chuỗi động hay theo một khuôn mẫu thì bạn cần áp dụng java regex. Dưới đây là một số ví dụ
Ví dụ 1: Mình có một chuỗi là tên trang web mình thế nhưng không hiểu vì sao nó lại lẫn các ký số vào, và bây giờ mình cần loại bỏ các chữ số đó ra khởi chuỗi “share214programming4214124net”.
class Main { public static void main(String args[]) { String s = "share214programming4214124.net"; String[] splits = s.split("\\d+"); StringBuilder stringBuilder = new StringBuilder(); for (String item : splits) stringBuilder.append(item); System.out.println(stringBuilder.toString()); } }Output: shareprogramming.net
Ví dụ 2: Cho chuỗi str, loại bỏ 3 ký tự ‘xxx’ liền nhau.
class Main { public static void main(String args[]) { String s = "shareproxxxgramminxxxg.nexxxt"; String[] splits = s.split("[xxx]"); StringBuilder stringBuilder = new StringBuilder(); for (String item: splits) stringBuilder.append(item); System.out.println(stringBuilder.toString()); } }Output: shareprogramming.net
PatternSyntaxException trong String
Nếu bạn cắt chuỗi mà chuỗi regex truyền vào không hợp lệ thì sẽ bị java nèm lỗi Pattern SyntaxException. Ví dụ như bạn dùng các ký tự Quantifiers regex như “*, +, ?” hay thiếu dấu đóng mở ngoặc như “{“, “[” etc.
class Main { public static void main(String args[]) { String s = "Welcome*to"; s.split("*"); } }Output: PatternSyntaxException
Nguồn tham khảo
https://www.baeldung.com/string/split
Từ khóa » Cách Dùng Hàm Split Trong Java
-
Split Trong Java - Techacademy
-
Phương Thức Split() Trong String Java - Freetuts
-
Cắt Chuỗi Bằng String Split Trong Java - Laptrinh
-
Phương Thức Chuỗi Split () Trong Java: Cách Tách Chuỗi Bằng Ví Dụ
-
Lập Trình Java - Dùng Câu Lệnh Split để Tách Chuỗi - LADIGI Academy
-
Hỏi Về Phương Thức Split() Trong Java - Programming - Dạy Nhau Học
-
Hé Lộ Cách Sử Dụng Hàm Split Trong Python
-
[Hỏi] Hàm Split - Cộng đồng Java Việt Nam - CongDongJava
-
Sự Khác Nhau Của Bộ 3 Slice, Splice Và Split Trong Javascript - Viblo
-
Hàm Split() Trong Python - Học Lập Trình Python - VietTuts
-
Phương Thức Chuỗi Split () Trong Java Với Các Ví Dụ - Làm Thế Nào để ...
-
Chuỗi.split - Bởi Dấu Phân Cách Nhiều Ký Tự? - HelpEx
-
Cách Tách Một Chuỗi Trong Java
-
Java: Hàm Xử Lý Chuỗi (String) | V1Study