Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java tách chuỗi thành các chuỗi con

Trong bài viết này, chúng ta sẽ tìm hiểu cách tách chuỗi thành các chuỗi con (substring) tất cả các tổ hợp có thể. String là kiểu dữ liệu chứa một hoặc nhiều ký tự, bao quanh bởi dấu nháy kép. Phần hoặc tập con của chuỗi gọi là substring.

Ví dụ minh họa

Đầu vào:

Chuỗi đầu vào: JVM

Đầu ra mong muốn:

Danh sách substring: [J, JV, JVM, V, VM, M]
Các chuỗi con: (1) "J" (2) "JV" (3) "JVM" (4) "V" (5) "VM" (6) "M"

Thuật toán

  1. Bắt đầu
  2. Khai báo chuỗi input_string và ArrayList string_list
  3. Gán giá trị
  4. Duyệt qua độ dài chuỗi bằng 2 vòng lặp lồng nhau, thêm mọi substring từ i đến j vào list
  5. In danh sách dưới dạng ArrayList
  6. In từng substring với số thứ tự
  7. Kết thúc

Ví dụ 1: Xử lý trực tiếp trong main

import java.io.*;
import java.util.ArrayList;

public class SubString {
    public static void main(String[] args) {
        System.out.println("Đã nhập các gói cần thiết");
        String input_string = "JVM";
        System.out.println("Chuỗi được định nghĩa: " + input_string);
        int i, j;
        int string_length = input_string.length();
        ArrayList<String> string_list = new ArrayList<String>();
        for (i = 0; i < string_length; i++) {
            for (j = i + 1; j <= string_length; j++) {
                string_list.add(input_string.substring(i, j));
            }
        }
        ArrayList<String> result = string_list;
        System.out.println("\nDanh sách substring:");
        System.out.println(result);
        System.out.println("\nCác chuỗi con:");
        int count = 1;
        for (String it : result) {
            System.out.println("(" + count + ") \"" + it + "\"");
            count++;
        }
    }
}

Kết quả

Đã nhập các gói cần thiết
Chuỗi được định nghĩa: JVM
Danh sách substring: [J, JV, JVM, V, VM, M]
Các chuỗi con: (1) "J" (2) "JV" (3) "JVM" (4) "V" (5) "VM" (6) "M"

Ví dụ 2: Sử dụng phương thức tách biệt (OOP)

import java.io.*;
import java.util.ArrayList;

public class SubString {
    public static ArrayList<String> split_string(String input_string) {
        int i, j;
        int string_length = input_string.length();
        ArrayList<String> string_list = new ArrayList<String>();
        for (i = 0; i < string_length; i++) {
            for (j = i + 1; j <= string_length; j++) {
                string_list.add(input_string.substring(i, j));
            }
        }
        return string_list;
    }
    public static void main(String[] args) {
        System.out.println("Đã nhập các gói cần thiết");
        String input_string = "JVM";
        System.out.println("Chuỗi được định nghĩa: " + input_string);
        ArrayList<String> string_list = SubString.split_string(input_string);
        System.out.println("\nDanh sách substring:");
        System.out.println(string_list);
        System.out.println("\nCác chuỗi con:");
        int count = 1;
        for (String it : string_list) {
            System.out.println("(" + count + ") \"" + it + "\"");
            count++;
        }
    }
}

Kết quả

Đã nhập các gói cần thiết
Chuỗi được định nghĩa: JVM
Danh sách substring: [J, JV, JVM, V, VM, M]
Các chuỗi con: (1) "J" (2) "JV" (3) "JVM" (4) "V" (5) "VM" (6) "M"