Java程序查找的字符流的第一个非重复的字符

要从字符流中找到第一个非重复字符,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。 在主函数中,将调用该函数,并在控制台上显示相关消息。