要从字符流中找到第一个非重复字符,Java代码如下-
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("字符串的第一个非重复字符是 "); System.out.println(my_list.get(0)); } } } public static void main(String[] args){ non_repeating_char(); } }
输出结果
字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T 字符串的第一个非重复字符是 T
名为Demo的类包含一个名为“non_repeating_char的函数。 创建一个列表并定义一个字符串。 重复此字符串,检查每个字符,并将其计数以布尔变量的形式存储在名为“ repeat”的数组中。 如果重复,则该值为true,否则为false。 在主函数中,将调用该函数,并在控制台上显示相关消息。