Để tìm ký tự không lặp đầu tiên từ luồng ký tự, mã Java như sau:
Ví dụ
import java.util.ArrayList; import java.util.List; public class Demo{ final static int max_chars = 256; static void non_repeating_char(){ List<Character> my_list = new ArrayList<Character>(); boolean[] repeat = new boolean[max_chars]; String my_str = "Thisisasample"; for (int i = 0; i < my_str.length(); i++){ char x = my_str.charAt(i); if (!repeat[x]){ if (!(my_list.contains(x))){ my_list.add(x); } else{ my_list.remove((Character)x); repeat[x] = true; } } if (my_list.size() != 0){ System.out.print("The first non-repeating character of the string is "); System.out.println(my_list.get(0)); } } } public static void main(String[] args){ non_repeating_char(); } }
Kết quả
The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T The first non-repeating character of the string is T
Lớp Demo chứa hàm non_repeating_char. Danh sách tạo và chuỗi định nghĩa. Chuỗi lặp qua, mỗi ký tự kiểm tra, đếm lưu dạng Boolean trong mảng repeat. Giá trị true nếu lặp, false ngược lại. Trong main, hàm gọi, thông báo hiển thị.