Chuyển đến nội dung chính

Split Trong Java

Trong bài viết này chúng ta sẽ tìm hiểu về phương thức split() trong Java. Đây là một phương thức được sử dụng để tách chuỗi dựa trên một regex được chỉ định.

1. Split Trong Java Là Gì

Phương thức split() thường được dùng chung với ArrayList để tách những phần tử trong mảng và trả về một mảng các chuỗi con. Vì vậy bạn hãy khai báo thư viện đã nhé: import java.util.Arrays

2. Cú Pháp Phương Thức Split() Trong Java

Như đã nói ở trên thì phương thức split () chia chuỗi tại regex được chỉ định và trả về 1 mảng các chuỗi con.

Cú pháp:

string.split(String regex, int limit)

Trong đó:

  • regex – chuỗi được chia tại regex này (có thể là chuỗi).
  • limit (option): kiểm soát số lượng các chuỗi con kết quả. Nếu tham số limit không được truyền, hàm split () trả về tất cả những chuỗi con có thể có.

Hàm trả về 1 mảng các chuỗi con.

Ví dụ: ta dùng phương thức split() để tách chuỗi str dựa trên khoảng trắng.

1
2
//tách chuỗi str dựa trên khoảng trắng
str.split(" ");

3. Cách Dùng Phương Thức Split() Trong Java

Phương thức split() tách chuỗi này theo biểu thức chính quy(regular expression) sau đó trả về mảng chuỗi.

Phương thức:

public String split(String regex)
public String split(String regex, int limit)

4. Ví Dụ 1

Ở ví dụ này chúng tôi sẽ tách chuỗi vowels dựa trên “::”.

import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    //khai báo một chuỗi vowels với nội dung là "a::b::c::d:e"
    String vowels = "a::b::c::d:e";
    //sử dụng phương thức split() để tách chuỗi vowels dựa trên "::"
    String[] result = vowels.split("::");
    //hiển thị kết quả sau khi tách ra màn hình
    System.out.println("Kết quả: " + Arrays.toString(result));
 
    System.out.println("--------------------------------");
    System.out.println("Chương trình này được đăng tại Frertuts.net");
  }

Kết quả là:

5. Ví Dụ 2

Tùy vào hoàn cảnh mà chúng ta dùng những phương thức cho hợp lý,tuy nhiên thông thường chúng ta sử dụng cấu trúc thứ 2 public String[] split(String regex),với regex là dấu mà chúng ta cần tách. Để hiểu rõ hơn mời bạn đọc xem ví dụ dưới đây về việc tách chuỗi thành mảng :

package action;

public class Demo {
   public static void main(String[] args) {
      String str1 = "itphutran.com";
      String[] arStr = str1.split("\\.");
      for (String item : arStr) {
         System.out.println(item);
      }
   }
}

Với ví dụ trên,chúng ta tách chuỗi dựa vào dấu chấm (.).Như vậy sau khi tách trả về mảng gồm 2 phần tử.

Kết quả đầu ra :

itphutran
com

6. Split Nhiều Ký Tự Trong Java

Để cắt chuỗi trong java ta có thể xử dụng 2 cách phổ biến là sử dụng phương thức split có sẵn trong class String hoặc dùng đối tượng StringTokenizer để xử lý.

Sử dụng phương thức string.spilt(regex) để cắt chuỗi với với ký tự định dạng vị trí cắt theo cú pháp regex

String phone = "012-3456789";
String[] output = phone.split("-");
System.out.println(output[0]);
System.out.println(output[1]);

Kết quả trả về

012
3456789

Chú ý: khi sử dụng regex để tìm vị trí cần cắt trong chuổi nếu ký tự regex này là các ký tự keyword đặc biệt thì chúng ta cần xử dụng ký tự đánh dấu “\\” trước ký tự đặc biệt, Trong ví dụ sau “.” là ký tự giữ vị trí cần cắt

import java.util.regex.Pattern;

public class TestSplit {

  public static void main(String[] args) {

    String test = "abc.def.123";
    String[] output = test.split("\\.");

    //alternative
    //String[] output = test.split(Pattern.quote("."));
    
    System.out.println(output[0]);
    System.out.println(output[1]);
    System.out.println(output[2]);
    
  }

}

Kết quả trả về

abc
def
123

Để kiểm tra logic xem chuỗi cần cắt có thể cắt hay không chúng ta sử dụng phương thức lấy số lượng phần tử trong mảng kết quả trả về, nếu length lớn hơn 0 thì chuổi có thể cắt và ngược lại. Bạn có thể xem bài viết “thao tác xử lý mảng” này để rõ hơn cách dùng.

import java.util.regex.Pattern;

public class TestSplit {

  public static void main(String[] args) {

    String test = "abc.def.123";
    if(test.contains(".")){
      String[] output = test.split("\\.");
      if(output.length!=3){
        throw new IllegalArgumentException(test + " - invalid format!");
      }else{
        System.out.println(output[0]);
        System.out.println(output[1]);
        System.out.println(output[2]);
      }
    }else{
      throw new IllegalArgumentException(test + " - invalid format!");
    }
    
  }

}

7. Phương Thức Split () Trong Java Không Hoạt Động Trên Dấu Chấm (.) [Trùng lặp]

Chúng tôi đã chuẩn bị 1 đoạn mã đơn giản để tách phần lỗi khỏi ứng dụng web của mình.

public class Main {

    public static void main(String[] args) throws IOException {
        System.out.print("\nEnter a string:->");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String temp = br.readLine();

        String words[] = temp.split(".");

        for (int i = 0; i < words.length; i++) {
            System.out.println(words[i] + "\n");
        }
    }
}

Chúng tôi đã thử nghiệm nó trong khi xây dựng 1 ứng dụng web JSF. Tôi chỉ muốn biết tại sao trong đoạn mã trên temp.split(“.”) không hoạt động. Tuyên bố,

System.out.println(words[i]+"\n"); 

không hiển thị gì trên bảng điều khiển có nghĩa là nó không đi qua vòng lặp. Khi chúng tôi thay đổi đối số của phương thức temp.split() thành các ký tự khác, nó hoạt động tốt như bình thường. Rắc rối có thể là cái gì?

Dấu chấm là 1 ký tự đặc biệt trong cú pháp biểu thức chính quy. Sử dụng Pattern.quote() trên tham số cần chia () nếu các bạn muốn phân tách nằm trên mẫu chuỗi ký tự:

String[] words = temp.split(Pattern.quote("."));

 

The post Split Trong Java first appeared on Techacademy.



Nhận xét

Bài đăng phổ biến từ blog này

Hướng Dẫn Cài Đặt Python Trên Máy Tính?

Python là một ngôn ngữ lập trình phổ biến và được sử dụng rộng rãi trong lĩnh vực phát triển phần mềm và khoa học dữ liệu. Để bắt đầu sử dụng Python trên máy tính của bạn, bạn cần cài đặt nó. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách cài đặt Python trên máy tính một cách dễ dàng. I. Cài Đặt Python Trên Vscode Python là một ngôn ngữ lập trình phổ biến và VS Code là một trình soạn thảo mã nguồn được ưa chuộng. Kết hợp cả hai, bạn có thể tận dụng lợi ích của cả hai công cụ để phát triển ứng dụng Python một cách hiệu quả. Trong bài viết này, chúng tôi sẽ hướng dẫn cách cài đặt Python trên VS Code. Bước 1: Cài đặt VS Code Trước khi bắt đầu, bạn cần cài đặt VS Code trên máy tính của mình. Truy cập trang web vscode.com, tải xuống phiên bản phù hợp với hệ điều hành của bạn và làm theo hướng dẫn trên màn hình để hoàn tất quá trình cài đặt. Bước 2: Cài đặt Extension Python cho VS Code Sau khi cài đặt VS Code, bạn cần cài đặt extension Python để hỗ trợ phát triển ứng dụng Python t...

Phím Tắt Eclipse Thông Dụng Và Tiện Lợi Nhất ! Đọc Ngay Nếu Bạn Vẫn Đang Dùng Chuột

Việc sử dụng các thao tác click chuột nhiều lần trong Eclipse khiến các coder nhàm chán và tốn thời gian, hãy cải tạo nó bằng các phím tắt trong Eclipse. Dưới đây là danh sách một số những phím tắt thông dụng bạn nên biết. phím tắt eclipse (1) Đầu tiên hãy sử dụng phím tắt Ctrl + Shift + L để hiển thị danh sách các phím tắt trong Eclipse. phím tắt eclipse (2) Danh sách tất cả những phím tắt trong Eclipse bạn có thể áp dụng, được chia thành 12 mục khác nhau tùy thuộc vào tác dụng của phím tắt: 1. Quản lý tập tin và dự án Ctrl + N Tạo dự án mới bằng Wizard Ctrl + Alt + N Tạo dự án , tập tin, lớp, vv Alt + F Mở dự án, tệp, v.v. Ctrl + Shift + R Mở Resource (tệp, thư mục hoặc dự án) Alt + Enter Hiển thị và truy cập các thuộc tính tệp Ctrl + S Save tập tin hiện tại Ctrl + Shift + S Save tất cả các tập tin Ctrl + W Đóng tệp hiện tại Ctrl + Shift + W Đóng tất cả các tệp F5 Làm mới nội dung của phần tử đã chọn bằng hệ thống tệp cục bộ 2. Cửa sổ trình chỉnh sửa F1...

Kiểu Date Trong Java

Date trong Java là 1 trong các class mô tả ngày tháng đầu tiên trong Java. Thật đáng tiếc là hầu hết các cách thức của nó đã lỗi thời, và thay vào đó là dùng các cách thức của java.util.Calendar. Nhưng bạn vẫn có thể dùng java.util.Date để mô tả ngày tháng. 1. Các Lớp Date, Time, Calendar Trong Java Java cung cấp 1 số class liên quan tới thời gian và lịch (Calendar), sau đây là danh sách các class này: Class Mô tả java.util.Date 1 lớp đại diện cho ngày tháng năm và thời gian. Tiếc là hầu hết các cách thức của nó đã bị lỗi thời, khuyến cáo là không nên dùng các cách thức đó, tuy nhiên lớp Date vẫn được dùng rỗng rãi. java.util.concurrent.TimeUnit TimeUnit là 1 Enum mô tả các đơn vị ngày tháng năm và thời gian. java.sql.Date 1 lớp mô tả ngày tháng năm. Thông tin về thời gian bị cắt bỏ. Lớp này thường dùng trong JDBC. java.sql.Time 1 lớp mô tả thời gian (Giờ phút giây, milli giây), và không chứa thông tin ngày tháng năm. Lớp này thường dùng trong...