06/04/2021, 14:47

ìm các ký tự trùng lặp trong java - Bài tập Java có lời giải cơ bản đến nâng cao

Trong bài này chúng ta sẽ thực hiện một chương trình tìm các ký tự trùng lặp trong một chuỗi trong java. Với bài tập này sẽ giúp các bạn năm rõ hơn về String và cách sử dụng String trong java. Các bài tập về String thật sự khó vì vậy các bạn hãy tìm hiểu kĩ về nó trước khi bắt đầu thực hành các ...

Trong bài này chúng ta sẽ thực hiện một chương trình tìm các ký tự trùng lặp trong một chuỗi trong java. Với bài tập này sẽ giúp các bạn năm rõ hơn về String và cách sử dụng String trong java.

Các bài tập về String thật sự khó vì vậy các bạn hãy tìm hiểu kĩ về nó trước khi bắt đầu thực hành các bài tập. Khi các bạn hiểu rõ và làm được các bài tập basic thì các bạn sẽ nắm chắc được kiến thức để làm các bài tập phức tạp hơn.

Chương trình tìm các ký tự trùng lặp trong java

Ở chương trình này chúng ta sẽ có một phương thức tìm kiếm các ký tự trùng lặp là timKiem(). sau đó sẽ viết hàm main() và gọi phương thức này ra để tìm kiếm.

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class TimKiemKyTu {
    public void timKiem(String str) {
        //Tạo một HashMap
        Map<Character, Integer> map = new HashMap<Character, Integer>();
        //Chuyển đổi chuỗi thành mảng char
        char[] chars = str.toCharArray();
        /*
         * char được chèn dưới dạng khóa và
         *  được tính là giá trị. Nếu map đã chứa char
         *  rồi thì hãy tăng giá trị lên 1.
         * */
        for (Character ch : chars) {
            if (map.containsKey(ch)) {
                map.put(ch, map.get(ch) + 1);
            } else {
                map.put(ch, 1);
            }
        }
        //lấy key ra
        Set<Character> keys = map.keySet();
        /*
          Hiển thị số lượng ký tự nếu nó là
          lớn hơn 1. Tất cả các ký tự trùng lặp sẽ
          có giá trị lớn hơn 1.
         */
        for (Character ch : keys) {
            if (map.get(ch) > 1) {
                System.out.println("Char " + ch + " " + map.get(ch));
            }
        }
    }
    public static void main(String a[]) {
        TimKiemKyTu obj = new TimKiemKyTu();
        System.out.println("String: Chao Cac Ban !!!");
        System.out.println("-------------------------");
        obj.timKiem("Chao Cac Ban !!!");

        System.out.println("
String: Bai Tap Java Ve String");
        System.out.println("-------------------------");
        obj.timKiem("Bai Tap Java Ve String");

        System.out.println("
String: #@$@!#$%!!%@");
        System.out.println("-------------------------");
        obj.timKiem("#@$@!#$%!!%@");
    }
}

Kết quả:

tim kiem ki tu trung JPG

Vậy là chương tình đã thực hiện xong công việc tìm kiếm các ký tự trùng nhau trong một chuỗi. Chúc các bạn thực hiện thành công!!!

Tạ Quốc Bảo

23 chủ đề

7270 bài viết

Cùng chủ đề
0