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.



source https://techacademy.edu.vn/split-trong-java/

Nhận xét

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

Đề Thi HSG Tin Học Lớp 12 Tỉnh Lào Cai Năm 2025

Rate this post Dưới đây là Đề Thi HSG Tin Học Lớp 12 Tỉnh Lào Cai Năm 2025 Bạn đọc có thể share lời giải bên dưới comment bài viết. Tham khảo: TỔNG HỢP ĐỀ THI CHUYÊN TIN TẤT CẢ CÁC TRƯỜNG TRÊN TOÀN QUỐC TỔNG HỢP ĐỀ THI HỌC SINH GIỎI TIN HỌC LỚP 9 TOÀN QUỐC TỔNG HỢP ĐỀ THI HỌC SINH GIỎI TIN HỌC LỚP 12 TOÀN QUỐC KHÓA HỌC LẬP TRÌNH C++ KHÓA HỌC LẬP TRÌNH PYTHON  The post Đề Thi HSG Tin Học Lớp 12 Tỉnh Lào Cai Năm 2025 first appeared on Techacademy .

Đề Thi HSG Tin Học Lớp 9 Tỉnh Hải Phòng Năm 2024 – 2025

Rate this post Dưới đây là Đề Thi HSG Tin Học Lớp 9 Tỉnh Hải Phòng Năm 2024 – 2025 Dưới đây là danh sách toàn bộ đề thi học HSG – Chuyên Tin trên toàn quốc do Techacademy tổng hợp và sưu tầm từ các nguồn tham khảo Tổng hợp đề thi chuyên tin   Tổng hợp đề thi HSG tin học lớp 9   Tổng hợp đề thi HSG tin học lớp 12 Ngoài ra, Techacademy đã biên soạn và sưu tầm các đề thi, lời giải, chi tiết, phụ huynh và học viên muốn đăng kí mua tài liệu tham khảo có thể liên hệ Techacademy. +  Đăng Ký Mua Tài Liệu Luyện Thi Chuyên Tin +  Đăng Ký Mua Tài Liệu Luyện Thi THPT +  Đăng Ký Mua Tài Liệu Luyện Thi HSG Tin Học Tham gia group zalo để chia sẻ tài liệu:  https://zalo.me/g/wlonvi793  The post Đề Thi HSG Tin Học Lớp 9 Tỉnh Hải Phòng Năm 2024 – 2025 first appeared on Techacademy .

How to Choose Term Paper Writing Service

When looking to employ term paper writers to you contador de palabras ingles r writing job on the internet there are certainly some important variables to check before employing them. As many have seen around the planet, an contador de palabras twitter effective author ought to have the ability to combine technical knowledge and outstanding writing ability with the right methodology and application. It is no good, using a writer who can only produce a well researched and concisely written composition. There are several points which should always be kept in mind before deciding on any writer. An individual must bear in mind that a writer is just as good as their past performance. Thus, assess their academic writing documents and also take a look at their freelance job portfolio. Assess how many times they’ve been cited or acknowledged for their excellent academic writing aid. Writers for academic and term papers all specialize in a specific area of academic essay writing solutions. ...